Zmienne środowiskowe i podział ustawień
Bezpieczne rozdzielanie konfiguracji deweloperskiej i produkcyjnej
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
*.pycPakiet 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.pyWspół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 = TrueZabezpiecz 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.prodTypowane 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. 🎯
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
- Gunicorn jako serwer WSGI
- Nginx jako reverse proxy
- WhiteNoise dla plików statycznych
- Zmienne środowiskowe i podział ustawień