Esta es una publicación más antigua, pero creo que si agrego esta útil library
, simplificará las cosas.
Usa la configuración de django
Inicio rápido
pip install django-configurations
Luego, realice una subclase de las configuraciones incluidas. Clase de configuración en el archivo settings.py de su proyecto o cualquier otro módulo que esté utilizando para almacenar las constantes de configuración, por ejemplo:
# mysite/settings.py
from configurations import Configuration
class Dev(Configuration):
DEBUG = True
Establezca la DJANGO_CONFIGURATION
variable de entorno con el nombre de la clase que acaba de crear, por ejemplo, en ~/.bashrc
:
export DJANGO_CONFIGURATION=Dev
y la DJANGO_SETTINGS_MODULE
variable de entorno a la ruta de importación del módulo como de costumbre, por ejemplo, en bash:
export DJANGO_SETTINGS_MODULE=mysite.settings
Alternativamente, proporcione la --configuration
opción cuando use comandos de administración de Django siguiendo las líneas de la --settings
opción de línea de comandos predeterminada de Django , por ejemplo:
python manage.py runserver --settings=mysite.settings --configuration=Dev
Para permitir que Django use su configuración, ahora tiene que modificar su script manage.py o wsgi.py para usar las versiones de django-configurations de las funciones de inicio apropiadas, por ejemplo, un manage.py típico usando django-configurations se vería así:
#!/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)
Observe que en la línea 10 no usamos la herramienta común, django.core.management.execute_from_command_line
sino que configurations.management.execute_from_command_line
.
Lo mismo se aplica a su archivo wsgi.py , por ejemplo:
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()
Aquí no usamos la django.core.wsgi.get_wsgi_application
función predeterminada , sino configurations.wsgi.get_wsgi_application
.
¡Eso es! Ahora puede usar su proyecto con manage.py y su servidor habilitado para WSGI favorito.