python的setting怎么找_Python的Django框架中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 #生产环境的配置
使用方式
DJANGO_SETTINGS_MODULE
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
python的setting怎么找_Python的Django框架中settings文件的部署建议相关推荐
- import python settings from_Python的Django框架中settings文件的部署建议
django在一个项目的目录结构划分方面缺乏必要的规范,因此不同人的项目组织形式也千奇百怪,而且也很难说谁的做法就比较好.我根据自己的项目组织习惯,发布了一个项目dj-scaffold. 前些天在re ...
- python的setting怎么找_python代码中使用settings
原博文 2015-08-14 21:01 − 在具体的Django应用中,通过引入 django.conf.settings 使用配置,例: from django.conf import setti ...
- python日期选择框_Python的Django框架中设置日期和字段可选的方法
设置字段可选 在摆弄了一会之后,你或许会发现管理工具有个限制:编辑表单需要你填写每一个字段,然而在有些情况下,你想要某些字段是可选的. 举个例子,我们想要Author模块中的email字段成为可选,即 ...
- python实现聊天小程序_Python使用django框架实现多人在线匿名聊天的小程序
最近看到好多设计类网站,都提供了多人在线匿名聊天的小功能,感觉很有意思,于是基于python的django框架自己写了一个,支持手动实时更名,最下方提供了完整的源码. 在线聊天地址(无需登录,开一个窗 ...
- Python的Django框架中forms表单类的使用方法详解2
用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML ...
- python打不开settings_python - django无法导入settings文件
python - django无法导入settings文件 小葫芦2017-04-17 13:48:34 0 3 133 Traceback (most recent call last): ...
- mysql 中的neq_mysql中neq使用Python的Django框架中的压缩组件Django Compressor_MySQL
为了加快网站的加载速度,我们通常要多js和css进行压缩处理.这些js和css的压缩工作如果都手动处理,费时费力. <mysql中neq使用Python的Django框架中的压缩组件Django ...
- python的web应用程序开发(Django框架)
python的web应用程序开发(Django框架) 1.安装Django并开启网页服务器 pip install django # 安装Django包 django-admin startproje ...
- ajax校验的优点,django框架中ajax的使用及避开CSRF 验证的方式详解
本文实例讲述了django框架中ajax的使用及避开CSRF 验证的方式.分享给大家供大家参考,具体如下: ajax(Asynchronous Javascript And Xml) 异步javasc ...
最新文章
- 2018年6月PMP考试小结-计划和执行收获知识和证书
- 并发编程——线程——锁
- 什么是“ rpcsvchost”,以及为什么它在Mac上运行?
- bean type not found
- Java深入研究_Java底层深入研究(一)
- Vue中使用watch来监听数据变化
- 腾讯云首发智能网关流控,公有云进入网络精细管控时代
- 【题解专栏】南华大学19级软卓选拔赛题解
- 决策树 结构_如何快速简单的理解决策树的概念?
- 如何在vue3.0项目中集成Element-plus
- 项目:妍妍的相册1——设计
- 基于Java+SpringBoot+Thymeleaf+Mysql在线外卖点餐系统设计与实现
- 一封高三班主任写给大学生的信
- 长沙理工大学计算机电路b试题,长沙理工大学考试试卷(计算机网络)
- W3school学习 js-2
- win10桌面计算机快捷没了,Win10桌面快捷方式图标消失了的解决方法介绍
- 大雁牌计算机在线使用,用大雁牌计算器解决有关计算问题
- 基于U-Net+残差网络的语义分割缺陷检测
- java 中的网络编程(Socket、TCP三次握手四次挥手、TCP/UDP/URL)
- 【特大消息】博客换地址啦!