Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Inserida lib python decouple para leitura de configurações de instância #22

Merged
merged 1 commit into from
Jul 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/backend.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,5 +41,8 @@ jobs:
- name: Run Linter
run: poetry run flake8 .

- name: Copy instance config variables
run: cp ../config/env-sample .env

- name: Run backend Tests
run: poetry run pytest --cache-clear
11 changes: 8 additions & 3 deletions backend/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Nessa pasta se encontram os arquivos de backend do projeto Django.

Será usado o Poetry como gestor pacotes.
Será usado o Poetry como gestor pacotes.

Por isso, para instalar o projeto com as dependência de desenvolvimento, dentro das pasta backend rode

Expand All @@ -23,18 +23,23 @@ python manage.py runserver
```

## Padrão de código

Para o backend esse projeto usa o flake8, com as seguintes customizações

Tamanho de linha pode ter até 120 caracteres. Para ver o relatório do linter rode:


```bash
flake8 .
```

# Usuário padrão

Nesse projeto o usuário foi customizado. Ele não tem username nem last_name como o usuário padrão do Django.
Ele usa o login como identificador único. O usuário se encontra na app base para que você pode acrescentar acampos de
Ele usa o login como identificador único. O usuário se encontra na app base para que você pode acrescentar acampos de
acordo com sua necessidade.

## Configurações de instância

Para ler configurações de instância esse projeto usa a lib [python decouple](https://pypi.org/project/python-decouple/).
Ela é importada no arquivo settings.py

9 changes: 5 additions & 4 deletions backend/devpro/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
"""

from pathlib import Path
from decouple import config, Csv

import dj_database_url

Expand All @@ -21,14 +22,14 @@
# See https://docs.djangoproject.com/en/5.0/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'django-insecure-$yd9^=to3rg=(mf!022&vrfv*6tj6fb*kg41h4tdrr16))4ei0'
SECRET_KEY = config('BACKEND_SECRET_KEY')

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
DEBUG = config('BACKEND_DEBUG', default=False, cast=bool)

AUTH_USER_MODEL = 'base.User'

ALLOWED_HOSTS = []
ALLOWED_HOSTS = config('BACKEND_ALLOWED_HOSTS', default='', cast=Csv())

# Application definition

Expand Down Expand Up @@ -77,7 +78,7 @@

DATABASES = {
"default": dj_database_url.parse(
'postgres://postgres:postgres@localhost:5432/postgres',
config('DATABASE_URL'),
conn_max_age=600,
conn_health_checks=True,
)
Expand Down
13 changes: 12 additions & 1 deletion backend/poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions backend/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ python = "^3.12"
django = ">4"
psycopg2 = "^2.9.9"
dj-database-url = "^2.2.0"
python-decouple = "^3.8"


[tool.poetry.group.dev]
Expand Down
12 changes: 11 additions & 1 deletion config/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,11 @@
# Pasta de configurações
# Pasta de configurações

Para gestão das configurações o projeto usa um simples arquivo .env

Para você não começar do zero, nessa pasta existe o arquivo env-sample com todas configurações definidas

Basta então copiar este arquivo para a raiz do projeto:

```bash
cp env-sample ../.env
```
6 changes: 6 additions & 0 deletions config/env-sample
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
BACKEND_SECRET_KEY=escolha-um-segredo-como-valor-para-o-django
# SECURITY WARNING: don't run with debug turned on in production!
BACKEND_DEBUG=False
# Configure os dominios ou ips que sua aplicação vai rodar, separadas por vírgula
BACKEND_ALLOWED_HOSTS=localhost,127.0.0.1
DATABASE_URL=postgres://postgres:postgres@localhost:5432/postgres
Loading