Configurações do ambiente
Parte da seção APIs JSON do Journey de Django da Coddy. Lição 18 de 19.
Depois que seu site estiver implantado, ou seja, 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 sessões, então não pode ficar no código que outras pessoas leem. ALLOWED_HOSTS lista os domínios aos quais o site responde.
A solução mais comum: ler essas configurações de variáveis de ambiente, valores que o servidor fornece ao programa quando ele é iniciado. os.environ.get(name, default) lê uma variável, 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 obter um valor booleano, split(",") para uma lista. Escolha valores padrão seguros: se uma variável for esquecida, DEBUG ficará desativado.
Desafio
MédioEm mysite/settings.py, leia as configurações do ambiente:
SECRET_KEYdeDJANGO_SECRET_KEY, com o valor padrão"django-insecure-change-me".DEBUG: seráTruesomente quandoDJANGO_DEBUGfor"True".ALLOWED_HOSTSdeDJANGO_ALLOWED_HOSTS, separados por vírgulas, com o valor padrãolocalhost,127.0.0.1.
Clique em Run e, em seguida, abra /nope/: com DEBUG desativado, a página 404 não lista nenhum padrão 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