Configurações do ambiente
Parte da seção APIs JSON do Journey de Django da Coddy. Lição 18 de 19.
Assim que seu site estiver implantado, copiado para um servidor na internet, três configurações precisam mudar. DEBUG = True mostra seu código e todos os padrões de URL para qualquer pessoa. SECRET_KEY assina valores em que seu site precisa confiar, como links de redefinição de senha e cookies assinados, por isso não pode ficar no código que outras pessoas leem. ALLOWED_HOSTS lista os domínios atendidos pelo site.
A resposta mais comum: leia-os a partir de variáveis de ambiente, valores que o servidor fornece ao programa quando ele inicia. os.environ.get(name, default) lê uma, e o valor padrão é o que seu próprio computador recebe:
PAGE_SIZE = int(os.environ.get("PAGE_SIZE", "20"))
MAINTENANCE = os.environ.get("MAINTENANCE", "no") == "yes"Uma variável é sempre uma string, então converta-a para o tipo de que você precisa: int() para um número, uma comparação para um booleano real, split(",") para uma lista. Escolha valores padrão seguros: uma variável esquecida mantém DEBUG desativado.
Desafio
MédioLeia três configurações do ambiente.
- No início de
mysite/settings.py, adicioneimport os. - Substitua as linhas
SECRET_KEY,DEBUGeALLOWED_HOSTSiniciais.SECRET_KEYvem deDJANGO_SECRET_KEY, com valor padrão"django-insecure-change-me".DEBUGéTruesomente quandoDJANGO_DEBUGcontém o texto"True".ALLOWED_HOSTSéDJANGO_ALLOWED_HOSTSdividido pelas vírgulas, com valor padrãolocalhost,127.0.0.1.
Acesse /nope/: você verá apenas Não encontrado, sem uma lista de padrões de URL.
Experimente você mesmo
from pathlib import Path
BASE_DIR = Path(__file__).resolve().parent.parent
SECRET_KEY = "django-insecure-change-me"
DEBUG = True
ALLOWED_HOSTS = []
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"tasks",
]
MIDDLEWARE = [
"django.middleware.security.SecurityMiddleware",
"django.contrib.sessions.middleware.SessionMiddleware",
"django.middleware.common.CommonMiddleware",
"django.middleware.csrf.CsrfViewMiddleware",
"django.contrib.auth.middleware.AuthenticationMiddleware",
"django.contrib.messages.middleware.MessageMiddleware",
"django.middleware.clickjacking.XFrameOptionsMiddleware",
]
ROOT_URLCONF = "mysite.urls"
TEMPLATES = [
{
"BACKEND": "django.template.backends.django.DjangoTemplates",
"DIRS": [],
"APP_DIRS": True,
"OPTIONS": {
"context_processors": [
"django.template.context_processors.request",
"django.contrib.auth.context_processors.auth",
"django.contrib.messages.context_processors.messages",
],
},
},
]
DATABASES = {
"default": {
"ENGINE": "django.db.backends.sqlite3",
"NAME": BASE_DIR / "db.sqlite3",
}
}
LANGUAGE_CODE = "en-us"
TIME_ZONE = "UTC"
USE_I18N = True
USE_TZ = True
STATIC_URL = "static/"
Todas as lições de APIs JSON
2Lendo requisições
Filtrando com uma consultaCriando com POST5Projeto: Organizando o Trabalho
Projeto: PrioridadesProjeto: Limpar Tarefas ConcluídasPratique por conta própria: Playground de Django