Django 开发环境与生产环境的区分详解


Posted in Python onJuly 26, 2019

Django 开发环境与生产环境的设置

在常规的Django工程开发中,我们经常会遇到一类问题,即:本地开发环境跟远程服务器生产环境配置不一样。对于这些不同之处,以前的做法是直接修改生产环境中的配置。但是对于立志自动化体系的开发者来说,显然这是极其愚蠢的。

那么常规的做法是什么呢?既然是不同的环境,两份不同的配置文件是必须的。

准备配置文件

在新建的Django项目中与settings.py同级目录下,准备两份不同的settings:

|____EveryDay
| |____prd_settings.py
| |______init__.py
| |____settings.py
| |____dev_settings.py
| |____urls.py
| |____wsgi.py

从默认的setting中导入不同的配置

在这里,我并不打算修改django默认的配置模块:settings.py。而是通过辨别当前环境是生产环境还是开发环境来区分加载不同的配置。so,我们需要通过设置一个生产环境才有的环境变量,然后在settings.py中判断这个环境变量的存在与否来决定导入哪一份配置。

show code:

# settings.py
import os

# Default settings between dev and prd

if os.environ.get('ENV', None):
  from .prd_settings import *
else:
  from .dev_settings import *

因为服务器使用的是CentOS7,我们直接在/etc/profile中增加环境变量

export ENV="SERVER"

从运行时中导入不同的配置

manage.py在运行时还提供了?settings选项用于指定settings模块,因此用于启动django自带的debug服务器还是挺方便的。

python manage.py rumserver 0.0.0.0:8000 --settings=EveryDay.prd_settings

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python编程-将Python程序转化为可执行程序[整理]
Apr 09 Python
ubuntu中配置pyqt4环境教程
Dec 27 Python
python处理csv数据动态显示曲线实例代码
Jan 23 Python
windows下安装python的C扩展编译环境(解决Unable to find vcvarsall.bat)
Feb 21 Python
python简易远程控制单线程版
Jun 20 Python
python实现扫描ip地址的小程序
Apr 16 Python
python下PyGame的下载与安装过程及遇到问题
Aug 04 Python
python实现根据文件格式分类
Oct 31 Python
使用PyTorch将文件夹下的图片分为训练集和验证集实例
Jan 08 Python
Django框架实现在线考试系统的示例代码
Nov 30 Python
java字符串格式化输出实例讲解
Jan 06 Python
使用Python通过企业微信应用给企业成员发消息
Apr 18 Python
python3发送邮件需要经过代理服务器的示例代码
Jul 25 #Python
如何实现Django Rest framework版本控制
Jul 25 #Python
python requests使用socks5的例子
Jul 25 #Python
python基于socket进行端口转发实现后门隐藏的示例
Jul 25 #Python
Django实现跨域请求过程详解
Jul 25 #Python
Django Rest framework认证组件详细用法
Jul 25 #Python
Django Rest framework权限的详细用法
Jul 25 #Python
You might like
PHP实现微信网页授权开发教程
2016/01/19 PHP
PHP环形链表实现方法示例
2017/09/15 PHP
PHP结合Redis+MySQL实现冷热数据交换应用案例详解
2019/07/09 PHP
在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题
2010/11/28 Javascript
javascript 闭包
2011/09/15 Javascript
javaScript中两个等于号和三个等于号之间的区别介绍
2014/06/27 Javascript
禁止iframe页面的所有js脚本如alert及弹出窗口等
2014/09/03 Javascript
jQuery+AJAX实现网页无刷新上传
2015/02/22 Javascript
jQuery实现定时读取分析xml文件的方法
2015/07/16 Javascript
JavaScript实现点击文本自动定位到下拉框选中操作
2016/06/15 Javascript
node文件批量重命名的方法示例
2017/10/23 Javascript
vue 项目打包通过命令修改 vue-router 模式 修改 API 接口前缀
2018/06/13 Javascript
深入理解Vue父子组件生命周期执行顺序及钩子函数
2018/08/12 Javascript
JavaScript如何把两个数组对象合并过程解析
2019/10/10 Javascript
Vue组件基础用法详解
2020/02/05 Javascript
python启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
2009/04/09 Python
python双向链表实现实例代码
2013/11/21 Python
pycharm访问mysql数据库的方法步骤
2019/06/18 Python
Python中那些 Pythonic的写法详解
2019/07/02 Python
Pandas中resample方法详解
2019/07/02 Python
python读写csv文件并增加行列的实例代码
2019/08/01 Python
python使用多线程编写tcp客户端程序
2019/09/02 Python
python中如何进行连乘计算
2020/05/28 Python
Python实现钉钉/企业微信自动打卡的示例代码
2021/02/02 Python
新浪网技术部笔试题
2016/08/26 面试题
威盛公司软件C++工程师笔试题面试题
2012/07/16 面试题
初三政治教学反思
2014/01/30 职场文书
高中英语教学反思
2014/02/04 职场文书
三八红旗手先进事迹材料
2014/05/13 职场文书
庆七一活动总结
2014/08/27 职场文书
张家口市高新区党工委群众路线教育实践活动整改方案
2014/10/25 职场文书
世界文化遗产导游词
2015/02/13 职场文书
心灵捕手观后感
2015/06/02 职场文书
python实现A*寻路算法
2021/06/13 Python
分析ZooKeeper分布式锁的实现
2021/06/30 Java/Android
MySQL创建管理KEY分区
2022/04/13 MySQL