Django Academy · Lekcja

Zmienne środowiskowe i podział ustawień

Bezpieczne rozdzielanie konfiguracji deweloperskiej i produkcyjnej

Lekcja 4 z 413 kroki

Zmienne środowiskowe i podział ustawień to bezpłatna lekcja Django Academy na CoddyKit. To lekcja 4 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.

Jeden plik ustawień jest ryzykowny

Pojedynczy plik settings.py z włączonym DEBUG i wpisanymi na stałe sekretami jest odpowiedni lokalnie, ale niebezpieczny na produkcji. Środowisko produkcyjne potrzebuje własnej bezpiecznej konfiguracji. 🔒

Środowiska deweloperskie i produkcyjne się różnią

Środowiska lokalne i produkcyjne wymagają różnych ustawień: debugowania, dozwolonych hostów, baz danych i poczty elektronicznej, które zmieniają się między tymi środowiskami.

Dlaczego zmienne środowiskowe

Sekrety, takie jak hasła, nigdy nie powinny znajdować się w kodzie ani w git. Zmienne środowiskowe wstrzykują je podczas działania aplikacji, dzięki czemu nie trafiają do repozytorium.

Odczyt za pomocą os.environ

Proszę pobrać wartość ze środowiska za pomocą os.environ. Warto użyć wartości zapasowej, aby brak lokalnych zmiennych nie powodował awarii podczas programowania.

import os
SECRET_KEY = os.environ.get('SECRET_KEY', 'dev-only')

Wczytaj plik .env

Narzędzia takie jak python-dotenv wczytują zmienne z lokalnego pliku .env, dzięki czemu nie trzeba eksportować ich ręcznie podczas każdej sesji.

from dotenv import load_dotenv
load_dotenv()

Nigdy nie zatwierdzaj pliku .env

Proszę dodać .env do .gitignore. Zatwierdzenie tego pliku ujawniłoby wszystkie sekrety i zniweczyło cały sens korzystania ze zmiennych środowiskowych.

.env
*.pyc

Pakiet ustawień

Proszę podzielić ustawienia na pakiet: zamienić settings.py na folder zawierający moduły base, dev i prod, które współdzielą wspólną konfigurację.

settings/
  __init__.py
  base.py
  dev.py
  prod.py

Współdziel za pomocą base.py

Wszystko, co wspólne, należy umieścić w base.py. Pliki dev i prod importują z niego ustawienia, a następnie nadpisują tylko te, które rzeczywiście się różnią.

from .base import *
DEBUG = True

Zabezpiecz prod.py

W pliku prod.py pozostaw DEBUG wyłączone, a SECRET_KEY i ALLOWED_HOSTS odczytuj ze środowiska, nigdy ze stałych wpisanych w pliku.

from .base import *
DEBUG = False
ALLOWED_HOSTS = os.environ['ALLOWED_HOSTS'].split(',')

Wybierz moduł

Proszę wybrać ładowane ustawienia za pomocą zmiennej DJANGO_SETTINGS_MODULE. Środowisko deweloperskie wskazuje settings.dev, a serwer — settings.prod.

export DJANGO_SETTINGS_MODULE=myproject.settings.prod

Typowane pomocniki ułatwiają pracę

Biblioteki takie jak django-environ analizują wartości środowiskowe i zamieniają je na wartości logiczne, listy oraz adresy URL baz danych, dzięki czemu nie trzeba ręcznie wykonywać kłopotliwych konwersji ciągów znaków.

Szybkie sprawdzenie

Skąd powinna pochodzić produkcyjna wartość SECRET_KEY?

Podsumowanie

Nauczył(a) się Pan/Pani dzielić ustawienia na base, dev i prod, przechowywać sekrety w zmiennych środowiskowych i .env oraz wybierać moduł zależnie od środowiska. 🎯

Bezpłatny start

Ucz się Python dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
30
Lekcje
120

Często zadawane pytania

Czy lekcja „Zmienne środowiskowe i podział ustawień” jest bezpłatna?

Tak — pełny tekst „Zmienne środowiskowe i podział ustawień” 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 „Zmienne środowiskowe i podział ustawień”?

Bezpieczne rozdzielanie konfiguracji deweloperskiej i produkcyjnej Ć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 4 z 4.

Ile czasu zajmuje lekcja „Zmienne środowiskowe i podział ustawień”?

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. Gunicorn jako serwer WSGI
  2. Nginx jako reverse proxy
  3. WhiteNoise dla plików statycznych
  4. Zmienne środowiskowe i podział ustawień
← Powrót do Django Academy