To jest starszy post, ale myślę, że jeśli dodam ten użyteczny, library
to uprości sprawę.
Użyj konfiguracji django
Szybki start
pip install django-configurations
Następnie podklasuj dołączone konfiguracje.Klasa konfiguracji w pliku settings.py Twojego projektu lub innym module, którego używasz do przechowywania stałych ustawień, np .:
# mysite/settings.py
from configurations import Configuration
class Dev(Configuration):
DEBUG = True
Ustaw DJANGO_CONFIGURATION
zmienną środowiskową na nazwę właśnie utworzonej klasy, np. W ~/.bashrc
:
export DJANGO_CONFIGURATION=Dev
i DJANGO_SETTINGS_MODULE
zmienną środowiskową do ścieżki importu modułu jak zwykle, np. w bash:
export DJANGO_SETTINGS_MODULE=mysite.settings
Alternatywnie podaj --configuration
opcję podczas używania poleceń zarządzania Django zgodnie z domyślną --settings
opcją wiersza poleceń Django , np .:
python manage.py runserver --settings=mysite.settings --configuration=Dev
Aby umożliwić Django korzystanie z Twojej konfiguracji, musisz teraz zmodyfikować skrypt manage.py lub wsgi.py, aby używał wersji odpowiednich funkcji startowych django-configuration , np. Typowy manage.py używający konfiguracji django wyglądałby następująco:
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')
os.environ.setdefault('DJANGO_CONFIGURATION', 'Dev')
from configurations.management import execute_from_command_line
execute_from_command_line(sys.argv)
Zauważ, że w linii 10 nie używamy zwykłego narzędzia, django.core.management.execute_from_command_line
ale zamiast tego configurations.management.execute_from_command_line
.
To samo dotyczy twojego pliku wsgi.py , np:
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')
os.environ.setdefault('DJANGO_CONFIGURATION', 'Dev')
from configurations.wsgi import get_wsgi_application
application = get_wsgi_application()
Tutaj nie używamy domyślnej django.core.wsgi.get_wsgi_application
funkcji, ale zamiast tego configurations.wsgi.get_wsgi_application
.
Otóż to! Możesz teraz używać swojego projektu z manage.py i ulubionym serwerem obsługującym WSGI.