0Pricing
Django Academy · Lekcja

DEBUG, SECRET_KEY i ALLOWED_HOSTS

Prawidłowe ustawianie niebezpiecznych konfiguracji

DEBUG, SECRET_KEY i ALLOWED_HOSTS to bezpłatna lekcja Django Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Django Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Django Academy zawiera 4 lekcji w sumie.

Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.

Three Dangerous Settings

Three settings in settings.py can sink a production site if you get them wrong. Let us tame DEBUG, SECRET_KEY, and ALLOWED_HOSTS together. 🔒

What DEBUG Does

When DEBUG is True, Django shows detailed error pages with your code, settings, and traceback. That is gold in dev but a gift to attackers in production.

DEBUG = True

Turn DEBUG Off in Production

In production, set DEBUG to False so users see a generic 500 page instead of your internals. Never ship a live site with DEBUG on.

DEBUG = False

Meet SECRET_KEY

The SECRET_KEY is the seed Django uses to sign sessions, CSRF tokens, and password resets. Leak it and an attacker can forge any of them.

SECRET_KEY = "django-insecure-..."

Keep SECRET_KEY Secret

Never commit your real SECRET_KEY to git. Load it from an environment variable so the value lives outside your code.

import os
SECRET_KEY = os.environ["DJANGO_SECRET_KEY"]

Generate a Strong Key

Need a fresh SECRET_KEY? Django ships a helper that returns a long, random, hard-to-guess string for you to store securely.

from django.core.management.utils import get_random_secret_key
get_random_secret_key()

Why ALLOWED_HOSTS Exists

ALLOWED_HOSTS lists the domains your site is allowed to serve. It blocks HTTP Host header attacks that try to trick your app with a fake hostname.

Set Your Real Domains

Fill ALLOWED_HOSTS with the exact domains your site answers to. With DEBUG off, any request to an unlisted host gets a 400 error.

ALLOWED_HOSTS = ["example.com", "www.example.com"]

Avoid the Wildcard Trap

Setting ALLOWED_HOSTS to the wildcard accepts any host header and defeats the protection. Use it only for quick local tests, never in production.

ALLOWED_HOSTS = ["*"]

Drive It All From Env

The clean pattern is one source of truth: read DEBUG, SECRET_KEY, and hosts from environment variables so the same code runs safely everywhere.

DEBUG = os.environ.get("DEBUG", "0") == "1"

Let Django Warn You

Django can audit these settings for you. The check --deploy command flags an unsafe DEBUG, weak key, or open hosts before you ship.

python manage.py check --deploy

Quick Check

Time to test your instinct about production settings.

Recap: The Safe Trio

You locked down the basics: DEBUG off, a secret key kept out of git, and ALLOWED_HOSTS scoped to your domains. Run check --deploy and you are off to a safe start. 🎉

Często zadawane pytania

Czy lekcja „DEBUG, SECRET_KEY i ALLOWED_HOSTS” jest bezpłatna?

Tak — pełny tekst „DEBUG, SECRET_KEY i ALLOWED_HOSTS” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Django Academy, przejdź na CoddyKit PRO. Kurs Django Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „DEBUG, SECRET_KEY i ALLOWED_HOSTS”?

Prawidłowe ustawianie niebezpiecznych konfiguracji Ćwiczysz Django Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Django Academy?

Nie wymagamy żadnego doświadczenia. Django Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „DEBUG, SECRET_KEY i ALLOWED_HOSTS”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Django Academy?

Tak. Każda lekcja Django Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. DEBUG, SECRET_KEY i ALLOWED_HOSTS
  2. HTTPS, HSTS i bezpieczne Cookies
  3. Zabezpieczenia przed XSS, CSRF i SQL Injection
  4. Przeprowadzanie listy kontrolnej wdrożenia
← Powrót do Django Academy