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

Parte 5) Variáveis de ambiente e banco de dados #6

Open
marilia-borgo opened this issue Jul 4, 2022 · 0 comments
Open

Parte 5) Variáveis de ambiente e banco de dados #6

marilia-borgo opened this issue Jul 4, 2022 · 0 comments

Comments

@marilia-borgo
Copy link

Links

Repositório do Roger

link dos passos de uso da bibli. debug

Link para pacotes prontos django

link dos passos de uso da bibli. debug

GitHub - wsvincent/awesome-django: A curated list of awesome things related to Django

Escondendo informações na aplicação Django.

Django Debug Toolbar - Django Debug Toolbar 3.5.0 documentation

https://ohmycode.com.br/variaveis-de-ambiente-e-chaves-secretas-com-python-decouple/#:~:text=env na pasta do projeto,não seja um projeto Django




Conceitos e dicas:

O -e SECRET_KEY indica ao docker para já exportar a SECRET_KEY (isso quando você usa comandos docker de subir imagens)

"Migrações" são uma maneira de “salvar” as alterações que você fez no banco de dados. É uma lista de scripts de sql, que facilitam a integração das alterações feitas em diferentes ambientes de desenvolvimento. Ele verifica as informações que você tem no banco e o que você deveria ter no seu banco, e então o atualiza.

O Django permite você criar as aplicações e “plugar” no seu projeto. Isso facilita a adição de novas funcionalidades, a arquitetura Django permite que você crie a funcionalidade uma vez e utiliza-la depois em qualquer outro projeto. Plugins ,ou seja, igual a peças de lego.

Dentro do instaled apps, em settings.py é onde ficam os apps que estão sendo usados. As seis primeiras são as aplicações universais, que vêm com o projeto.

Podemos customizar o admin, a partir de permissões que podemos dar e revogar para determinado usuário cadastrado. É tudo feito através da interface e você brincar com elas, só não esquece que se vc revogar as permissões do admin ou você não vai poder mexer nelas de novo.




Comandos manage.py

Abre um terminal com os diretórios django já carregado

./manage.py shell

Mostra tabelas já criadas

./manage.py showmigrations

Aplica alterações no banco de dados referentes as tabelas criadas

./manage.py migrate

Trocar senha do usuário

./manage.py changepassword <nome do usuario>

Mostra as migrações feitas

manage.py showmigrates




Linhas inseridas no django:

Em settings.py

Importa a biblioteca dotenv

from dotenv import load_env

................................

Indica seu arquivo .env

env_file:

.....- .env

................................

Indica ao docker que deve exportar as variáveis descritas no arquivo .env quando a imagem for criada

docker compose-up

................................

No arquivo settings.py:

SECRET_KEY = os.getenv('SECRET_KEY','adicione-um-segredo-aqui')

................................

atualizar settings.py:

MIDDLEWARE = [
    # ...
    "debug_toolbar.middleware.DebugToolbarMiddleware",
    # ...
]

................................

Settings.py, logo no início depois dos imports:

from dotenv import load, dotenv

load_dotenv()

................................

Settings.py:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'algumacoisa-honeypot',
    'cursos',
    'debug_toolbar',
]

................................

Em secret_key é possível passar um parâmetro adicional, indicando o que o desenvolvedor deve fazer

SECRET_KEY = os.getenv('SECRET_KEY', 'quando não tiver outra, use bla blabla')

................................

Adicionar a configuração de ip no final do settings.py:

#isto é do debug toolbar
INTERNAL_IPS = [
    "127.0.0.1",
]

Em urls.py

Atualizar as urls.py:

from . import settings

if settings.DEBUG == True:
    urlpatterns = [path('__debug__/', include('debug_toolbar.urls'))] + urlpatterns

Nos arquivos Html:

No template Html, mostra o nome de usuário

{{ user }}

No template Html, mostra o primeiro nome do usuário

< p>{{ user.first_name }}</ p>

O código abaixo facilita a verificação de variáveis que você não sabe o que é.

< p> requests:{{requests}} < /p>



Instalações

pip install python-decouple (enviado pela Gaby)

pip install python-dotenv (enviado pelo Roger)

pip install django-debug-toolbar




Comandos no Terminal

Linux

Ativa o ambiente virtual

source .venv/bin/activate

Exporta uma variável

export SECRET_KEY = 'KHFCJHSIFHSIHFHBDHBDSHBSDBHIDBH'

Gera uma chave aleatória , bom para ser usada como SECRET_KEY

python -c 'from django.core.management.utils import get_random_secret_key;

print(get_random_secret_key())'

$ env (lista todas as variaveis de ambiente)

Shell do manage.py

Importa o módulo settings

from django_cursos import settings


settings.SECRET_KEY

Mostra o valor da variável no shell

$SECRET_KEY
Ou

settings.SECRET_KEY

Pega o valor da variável de ambiente, senão, retorna none

os.getenv("<nome da variável>")




Os Erros Comuns:

error: unapplied migrations - Você tem aplicações que existem no seu projeto, que têm dados mas você não criou essas tabelas.




Informações sobre documentos em django:

  • docker-compose.yml contém as configuraçoes que devem ser subidas
  • No dot env vc adiciona variáveis que seriam exportadas
  • O documento requirements-dev.txt indica documentos que só devem rodar na máquina local
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant