Este é um post mais antigo, mas acho que se adicionar este útil, library
isso simplificará as coisas.
Use a configuração django
Começo rápido
pip install django-configurations
Em seguida, subclasse a classe configurations.Configuration incluída em settings.py do seu projeto ou qualquer outro módulo que você esteja usando para armazenar as constantes de configurações, por exemplo:
# mysite/settings.py
from configurations import Configuration
class Dev(Configuration):
DEBUG = True
Defina a DJANGO_CONFIGURATION
variável de ambiente com o nome da classe que você acabou de criar, por exemplo, em ~/.bashrc
:
export DJANGO_CONFIGURATION=Dev
e a DJANGO_SETTINGS_MODULE
variável de ambiente para o caminho de importação do módulo como de costume, por exemplo, em bash:
export DJANGO_SETTINGS_MODULE=mysite.settings
Alternativamente, forneça a --configuration
opção ao usar comandos de gerenciamento do Django ao longo das linhas da --settings
opção de linha de comando padrão do Django , por exemplo:
python manage.py runserver --settings=mysite.settings --configuration=Dev
Para habilitar o Django a usar sua configuração, você agora tem que modificar seu script manage.py ou wsgi.py para usar as versões do django-configurations das funções iniciais apropriadas, por exemplo, um manage.py típico usando django-configurations ficaria assim:
#!/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 na linha 10 que não usamos a ferramenta comum, django.core.management.execute_from_command_line
mas sim configurations.management.execute_from_command_line
.
O mesmo se aplica ao seu arquivo wsgi.py , por exemplo:
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()
Aqui não usamos a django.core.wsgi.get_wsgi_application
função padrão , mas sim configurations.wsgi.get_wsgi_application
.
É isso aí! Agora você pode usar seu projeto com manage.py e seu servidor habilitado para WSGI favorito.