Django 设置多环境配置文件载入问题
在上篇文章给大家介绍过Django多环境配置详解,感兴趣的朋友可以点击查阅,今天继续给大家介绍django多环境配置的相关内容,本文重点给大家介绍Django设置多环境配置文件载入的相关知识,一起看看吧。
起步
通常,针对不同的开发环境,需要不同的配置保证程序可运行且不干扰。单个settings.py文件就很难满足需求,需要将他拆分为多个文件,根据特定环境载入不同的配置文件。一种简单的划分就是分为4个文件:
__init__.py base.py dev.py prod.py
基本结构
一个初始的Django项目目录结构如下:
mysite/ |--mysite/ ||--__init__.py ||--settings.py ||--urls.py |+--wsgi.py +--manage.py
这时候要做的就是创建一个名为settings的文件夹,将settings.py重命名为base.py并放入文件夹内:
mysite/ |--mysite/ ||--__init__.py ||--settings/<--新建的文件夹 |||--__init__.py<-- |||--base.py<--旧的settings.py |||--cli.py<--根据不同环境而新增的配置文件 |||--dev.py ||+--prod.py ||--urls.py |+--wsgi.py +--manage.py
base.py顾名思义,它将成为所有环境的通用配置,扩展的配置文件需要将base.py导入:
#settings/dev.py from.baseimport* DEBUG=True INSTALLED_APPS+=[ 'debug_toolbar', ] ...
让配置文件生效
要使配置文件生效,需要让Django知道我们要使用哪个配置文件,一种方式就是在命令行中传递这个--settings=mysite.settings.dev参数,如:
pythonmanage.pyrunserver--settings=mysite.settings.dev pythonmanage.pyrunserver--settings=mysite.settings.prod pythonmanage.pymigrate--settings=mysite.settings.prod
如果不希望每次指令都传递--settings参数,也可以通过修改manage.py文件实现使用不同的配置文件:
#manage.py importos importsys if__name__=="__main__": os.environ.setdefault("DJANGO_SETTINGS_MODULE","mysite.settings.dev")#修改这个位置 ...
在服务器上指定设置
生产环境下一般不会使用runserver指令运行,大多是通过uwsgi方式运行,修改mysite/wsgi.py:
importos fromdjango.core.wsgiimportget_wsgi_application os.environ.setdefault("DJANGO_SETTINGS_MODULE","mysite.settings.prod") application=get_wsgi_application()
通过修改DJANGO_SETTINGS_MODULE环境变量指向所需的配置文件。
下面看下djangosettings多环境配置
通常我们会把本地、线上的配置拆分,django不同环境的配置可如下:
1.在settings.py同级目录添加settings文件夹
2.把settings.py移到settings文件夹内,并重命名为base.py
3.添加dev.py,prod.py到settings文件夹
4.base.py中的根目录,要改成:
BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(os.path.join(__file__,os.pardir))))
说明:
1)一些公共配置,放在base.py中。其他因环境而不同的配置,加到local.py/prod.py中
2)dev.py/prod.py,需要把base.py中的配置导入
from.baseimport* DEBUG=True #其他配置
3)启动服务时,用--setings指定配置
pythonmanage.pyrunserver--settings=back-server.settings.dev
正式环境用uwsgi部署,则配置环境变量:DJANGO_SETTINGS_MODULE=back-server.settings.prod
总结
到此这篇关于Django设置多环境配置文件载入的文章就介绍到这了,更多相关django配置文件载入内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。