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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/332486.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

显示计算机硬盘驱动器更改,计算机更换硬盘驱动器后蓝屏发生了什么

关于更换硬盘后的计算机蓝屏,怎么了?然后让我告诉您更换硬盘后计算机蓝屏的原因和解决方法。希望能对您有所帮助。 !计算机更换硬盘后蓝屏的解决方法:蓝屏的主要原因是:1、病毒木马和恶意软件2、有问题的内存(包括物理…

aws eks_在生产中配置和使用AWS EKS

aws eks到现在,我们已经完成了向Amazon EKS ( 工作地点)的迁移,并且集群已经投入生产。 过去,我已经写了一些要点的简短摘要,您可以在这里找到。 当系统正在处理实际流量时,我有了一些额外的信心…

Nexus中创建仓库时,repository connectors 干嘛的?

参见:https://support.sonatype.com/hc/en-us/articles/115013153887-Docker-Repository-Configuration-and-Client-Connection

量子计算机是否存在相对论,潘建伟团队再登Science:寻找广义相对论与量子力学的桥梁...

将环球科学设为星标周一至周五早间第一时间掌握最新鲜的全球科技资讯量子物理学寻找广义相对论与量子力学的桥梁广义相对论与量子力学是现代物理的两块基石。然而,它们之间似乎存在不可调和的矛盾,很多在广义相对论框架下适用的物理规则,在量…

判断大小简单算法_JVM GC算法

在判断哪些内存需要回收和什么时候回收用到GC 算法,本文主要对GC 算法进行讲解。JVM垃圾判定算法常见的JVM垃圾判定算法包括:引用计数算法、可达性分析算法。引用计数算法(Reference Counting)引用计数算法是通过判断对象的引用数量来决定对象是否可以被…

stream分组计数_Java Stream:第2部分,计数始终是计数吗?

stream分组计数在上一篇有关该主题的文章中 ,我们了解到JDK 8 stream()::count需要更长的时间来执行Stream更多的元素。 对于最新的JDK(例如Java 11),简单的流管道不再是这种情况。 了解JDK本身如何进行改进。 Java 8 在上一篇文…

女生学计算机类什么专业好就业前景,2019高考:适合女生报考的10大专业!就业前景好,待遇稳定!...

如今考大学不再是单纯的提升学历,也要为自己未来的工作考虑。尤其是女生,更要考虑就业问题。因为很多专业都不太适合女生去做,甚至都不招收女生。不过也有其他的专业很适合女生,不仅就业前景好,而且很好找工作&#xf…

macOS安装Maven_IDEA集成Maven

文章目录下载 Maven安装 Maven配置环境变量关于 settings.xml 文件配置本地仓库Maven 默认的远程中央仓配置镜像仓库IntelliJ IDEA 集成 Maven下载 Maven 官方下载地址:https://maven.apache.org/download.cgi 打开官方下载页面,页面拖到下面&#xff…

bootstrap样式异常_处理异常功能样式

bootstrap样式异常Java从一开始就支持检查异常。 在Java 8中,语言元素lambda和支持流操作的RT库修改将功能编程风格引入了该语言。 函数样式和异常并不是真正的好朋友。 在本文中,我将描述一个简单的库,该库在某种程度上类似于使用Optional处…

无线鼠标可以强制配对_赛睿Rival 3 Wireless游戏鼠标评测:无限全能

近两年,外设无线技术日渐成熟,也让无线外设产品出现了爆发式增长。随着无线外设产品开始在职业赛场上崭露头角,让越来越多的用户更加青睐便利性与体验感极佳的无线外设产品。赛睿作为老牌外设厂商,在2018年就推出了采用双传感器并…

clear nTotal nNum=1计算机考试,信息学奥赛常考算法——模拟法

★模拟法有些问题的描述和解决方法已经很清楚,只需要按照描述去一步一步的执行即可,这种方法就是计算机解决问题的一种最普遍最直接的方法------模拟法。模拟法并不是程序,只是我们依赖计算机的运算速度解决问题的一种方法或模式,…

junit 测试目录_JUnit 5测试中的临时目录

junit 测试目录JUnit 4 TemporaryFolder Rule允许开发人员使用临时目录创建测试。 使用JUnit 5时,不支持Rule因此测试文件和目录需要一点点额外的工作。 幸运的是,有了JUnit 5.4,有一个新的内置扩展可以处理测试中的临时目录。 而且它非常易于…

IntelliJ IDEA内置Maven的settings.xml文件在哪里?

IDEA 内置的 Maven 没有 settings.xml 文件,如果你自己不安装 Maven,而你又想设置 Maven 的资源仓库,你要怎么做呢? 参见:https://blog.csdn.net/Li_Ya_Fei/article/details/104432073

java生成唯一有序序列号_分布式唯一 ID 之 Snowflake 算法

SegmentFault 社区专栏:全栈修仙之路作者:semlinkerNo.1Snowflake 简介1.1 什么是 SnowflakeSnowflake is a service used to generate unique IDs for objects within Twitter (Tweets, Direct Messages, Users, Collections, Lists etc.). These IDs a…

冀教版五年级计算机教学计划,冀教版五年级上册教学计划资料

现状分析:五年级两个班现有学生四十余人,基本为我校四年级直升学生.已学习了北师大版《语文》五年级上册和冀教版《语文》五年级下册.目前普遍情况是听、写的能力尚可,读和说的能力有待提高.一班学生基础知识较为扎实,但缺乏变通性,学习较为用功,但成绩不佳;二班学生…

spring缓存_有关Spring缓存性能的更多信息

spring缓存这是我们最后一篇关于Spring的缓存抽象的文章的后续文章 。 作为工程师,您可以通过了解所使用的某些工具的内部知识来获得宝贵的经验。 了解工具的行为有助于您在做出设计选择时变得更加成熟。 在本文中,我们描述了基准测试实验和结果&#x…

提交构件到Maven的远程中央仓

参见:https://central.sonatype.org/publish/publish-guide/

ctrl导致开机弹出计算机,Win7系统开机黑屏提示Press Ctrl+Alt+Del to restart如何解决...

在使用win7系统的时候,难免会遇到各种各样的问题,比如最近有雨林木风win7旗舰版系统用户反映说开机黑屏,并提示Press CtrlAltDelto restart,该怎么解决这样的问题呢,现在给大家分享一下Win7系统开机黑屏提示PressCtrlA…

rxjava背压怎样使用_使用MicroProfile应用隔板和背压

rxjava背压怎样使用我录制了一段视频,介绍如何使用MicroProfile Fault Tolerance实现隔板和背压。 隔板后面的想法是将应用程序分成几个隔离功能的执行单元。 在企业Java应用程序中,这通常意味着定义多个线程池。 向客户端施加背压会导致向客户端添加有…