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

 更新时间:2015年05月30日 17:11:10   投稿:goldensun  
这篇文章主要介绍了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。

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    #生产环境的配置
 

使用方式

<strong>DJANGO_SETTINGS_MODULE</strong>
 

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

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

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

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

简化参数

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

SETTINGS = 'production' #dev
 

相关文章

  • 解决Pycharm双击图标启动不了的问题(JetBrains全家桶通用)

    解决Pycharm双击图标启动不了的问题(JetBrains全家桶通用)

    这篇文章主要介绍了Pycharm双击图标启动不了(JetBrains全家桶通用),本文给大家分享问题及解决方法,需要的朋友可以参考下
    2020-08-08
  • 对pytorch网络层结构的数组化详解

    对pytorch网络层结构的数组化详解

    今天小编就为大家分享一篇对pytorch网络层结构的数组化详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Python的Flask框架路由实现详解

    Python的Flask框架路由实现详解

    这篇文章主要介绍了Python的Flask框架路由实现详解,在启动程序时,python解释器会从上到下对代码进行解释,当遇到装饰器时,会执行,并把函数对应的路由以字典的形式进行存储,当请求到来时,即可根据路由查找对应要执行的函数方法,需要的朋友可以参考下
    2023-08-08
  • python3中sort和sorted使用与区别

    python3中sort和sorted使用与区别

    python3中sort()和sorted()都可以用来排序,本文主要介绍了python3中sort和sorted使用与区别,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • python flask实现分页效果

    python flask实现分页效果

    这篇文章主要为大家详细介绍了python flask实现分页效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • Python使用BeautifulSoup库解析网页

    Python使用BeautifulSoup库解析网页

    在Python的网络爬虫中,网页解析是一项重要的技术。而在众多的网页解析库中,BeautifulSoup库凭借其简单易用而广受欢迎,在本篇文章中,我们将学习BeautifulSoup库的基本用法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2023-08-08
  • 详解Python的Twisted框架中reactor事件管理器的用法

    详解Python的Twisted框架中reactor事件管理器的用法

    这篇文章主要介绍了详解Python的Twisted框架中reactor事件管理器的用法,Twisted是一款高人气的异步Python开发框架,需要的朋友可以参考下
    2016-05-05
  • 详解Python中的魔法函数与量子计算模拟

    详解Python中的魔法函数与量子计算模拟

    这篇文章主要介绍了python的魔法函数和量子计算模拟,我们可以通过一个实际的案例来先审视一下这两个需求是如何被结合起来的,希望对大家有所帮助
    2023-03-03
  • Django中间件整合Vue拦截器的使用

    Django中间件整合Vue拦截器的使用

    本文主要介绍了Django中间件整合Vue拦截器的使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • python中扫描条形码和二维码的实现代码

    python中扫描条形码和二维码的实现代码

    pyzbar模块是Python一个开源库用于扫描和识别二维码信息。这篇文章主要介绍了python中扫描条形码和二维码的示例代码,需要的朋友可以参考下
    2021-10-10

最新评论