Menu
CoddyTech

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.

challenge icon

Desafio

Médio

Leia três configurações do ambiente.

  1. No início de mysite/settings.py, adicione import os.
  2. Substitua as linhas SECRET_KEY, DEBUG e ALLOWED_HOSTS iniciais. SECRET_KEY vem de DJANGO_SECRET_KEY, com valor padrão "django-insecure-change-me". DEBUG é True somente quando DJANGO_DEBUG contém o texto "True". ALLOWED_HOSTS é DJANGO_ALLOWED_HOSTS dividido pelas vírgulas, com valor padrão localhost,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

Pratique por conta própria: Playground de Django