欢迎来到山村网

Python的Django框架中settings文件的部署建议

2019-03-02 13:35:51浏览:491 来源:山村网   
核心摘要:  这篇文章主要介绍了Python的Django框架中settings文件的部署建议,包括对local_settings的弊病的一些简单分析,需要的朋友可以

  这篇文章主要介绍了Python的Django框架中settings文件的部署建议,包括对local_settings的弊病的一些简单分析,需要的朋友可以参考下

  django在一个项目的目录结构划分方面缺乏必要的规范,因此不同人的项目组织形式也千奇百怪,而且也很难说谁的做法就比较好。我根据自己的项目组织习惯,发布了一个项目dj-scaffold。

  前些天在reddit上为我的项目dj-scaffold打了个“广告”(见:http://redd.it/kw5d4)。不想评价甚糟,甚至差点被打成负分。其中更也人将这个项目说的一文不值。面对负面声音虽然会有些不爽,但其中的建设性意见还是需要听取的,至于那些纯属个人偏好部分就自动过滤了。

  在谈及settings文件如何组织时,coderanger建议参考The Best (and Worst) of Django中的做法。文中的主要观点是开发环境和生产环境的配置都需要放到VCS中进行版本控制。参考文中的做法,我对settings模块做了部分调整。注:代码 https://github.com/vicalloy/dj-scaffold/tree/master/dj_scaffold/conf/prj/sites/settings

  local_settings的弊病

  为将项目的默认配置和本地配置区分开,最常用的做法是增加一个local_settings.py文件,并在settings文件的最后对该文件进行import。

  ?

1 2 3 4 try: from local_settings import * except: pass

  由此引发的问题是你不能对local_settings.py进行版本控制,部署环境的配置万一丢失将难以找回。

  解决方案

  针对该问题,建议的解决方案如下

  合理的配置文件组织方式

  复制代码 代码如下:

  |~settings/

  | |-__init__.py

  | |-base.py #默认配置信息

  | |-dev.py #开发环境的配置

  | |-local.sample #本地的扩展配置在dev和production的最后进行import

  | |-pre.sample #设置当前使用的配置为生产环境还是开发环境

  | `-production.py #生产环境的配置

  使用方式

  ?

1 <strong>DJANGO_SETTINGS_MODULE</strong>

  django的admin脚本提供了settings参数用于指定当前使用的配置文件

  ?

1 django-admin.py shell --settings=settings.dev

  在wsgi脚本中则可直接设置需要使用的settings

  ?

1 2 deploy.wsgi os.environ['DJANGO_SETTINGS_MODULE'] = settings.production

  简化参数

  当然,如果每次使用django-admin.py的时候都要带上settings参数还是非常恼人,所以推荐的做法是在pre.py中配置自己所需要使用的配置文件。

  ?

1 SETTINGS = 'production' #dev

 

(责任编辑:豆豆)
下一篇:

简单介绍Python的Django框架的dj-scaffold项目

上一篇:

Python的Django中django-userena组件的简单使用教程

  • 信息二维码

    手机看新闻

  • 分享到
打赏
免责声明
• 
本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们 xfptx@outlook.com