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文件的部署建议相关推荐

  1. import python settings from_Python的Django框架中settings文件的部署建议

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

  2. python的setting怎么找_python代码中使用settings

    原博文 2015-08-14 21:01 − 在具体的Django应用中,通过引入 django.conf.settings 使用配置,例: from django.conf import setti ...

  3. python日期选择框_Python的Django框架中设置日期和字段可选的方法

    设置字段可选 在摆弄了一会之后,你或许会发现管理工具有个限制:编辑表单需要你填写每一个字段,然而在有些情况下,你想要某些字段是可选的. 举个例子,我们想要Author模块中的email字段成为可选,即 ...

  4. python实现聊天小程序_Python使用django框架实现多人在线匿名聊天的小程序

    最近看到好多设计类网站,都提供了多人在线匿名聊天的小功能,感觉很有意思,于是基于python的django框架自己写了一个,支持手动实时更名,最下方提供了完整的源码. 在线聊天地址(无需登录,开一个窗 ...

  5. Python的Django框架中forms表单类的使用方法详解2

    用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML ...

  6. python打不开settings_python - django无法导入settings文件

    python - django无法导入settings文件 小葫芦2017-04-17 13:48:34 0 3 133 Traceback (most recent call last): ...

  7. mysql 中的neq_mysql中neq使用Python的Django框架中的压缩组件Django Compressor_MySQL

    为了加快网站的加载速度,我们通常要多js和css进行压缩处理.这些js和css的压缩工作如果都手动处理,费时费力. <mysql中neq使用Python的Django框架中的压缩组件Django ...

  8. python的web应用程序开发(Django框架)

    python的web应用程序开发(Django框架) 1.安装Django并开启网页服务器 pip install django # 安装Django包 django-admin startproje ...

  9. ajax校验的优点,django框架中ajax的使用及避开CSRF 验证的方式详解

    本文实例讲述了django框架中ajax的使用及避开CSRF 验证的方式.分享给大家供大家参考,具体如下: ajax(Asynchronous Javascript And Xml) 异步javasc ...

最新文章

  1. 2018年6月PMP考试小结-计划和执行收获知识和证书
  2. 并发编程——线程——锁
  3. 什么是“ rpcsvchost”,以及为什么它在Mac上运行?
  4. bean type not found
  5. Java深入研究_Java底层深入研究(一)
  6. Vue中使用watch来监听数据变化
  7. 腾讯云首发智能网关流控,公有云进入网络精细管控时代
  8. 【题解专栏】南华大学19级软卓选拔赛题解
  9. 决策树 结构_如何快速简单的理解决策树的概念?
  10. 如何在vue3.0项目中集成Element-plus
  11. 项目:妍妍的相册1——设计
  12. 基于Java+SpringBoot+Thymeleaf+Mysql在线外卖点餐系统设计与实现
  13. 一封高三班主任写给大学生的信
  14. 长沙理工大学计算机电路b试题,长沙理工大学考试试卷(计算机网络)
  15. W3school学习 js-2
  16. win10桌面计算机快捷没了,Win10桌面快捷方式图标消失了的解决方法介绍
  17. 大雁牌计算机在线使用,用大雁牌计算器解决有关计算问题
  18. 基于U-Net+残差网络的语义分割缺陷检测
  19. java 中的网络编程(Socket、TCP三次握手四次挥手、TCP/UDP/URL)
  20. 【特大消息】博客换地址啦!

热门文章

  1. 如何设计高效测试用例_高效的企业测试-单元和用例测试(2/6)
  2. cuba 平台_CUBA 7的新功能
  3. jrebel gradle_JRebel适用于Gradle Spring Boot应用程序
  4. java中的方法求和_在Java中模拟求和类型的巧妙解决方法
  5. 长期支持对OpenJDK意味着什么?
  6. 春天重新审视战略模式
  7. 如何在同一台计算机上安装多个Java版本
  8. 通过WAD和Docker热部署Java Enterprise
  9. 连续交付友好的Maven版本
  10. java中序列化与反序列化_Java中的序列化