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列表切片用法示例
Apr 19 Python
python3+PyQt5泛型委托详解
Apr 24 Python
python3.7.0的安装步骤
Aug 27 Python
python+splinter自动刷新抢票功能
Sep 25 Python
Django+Xadmin构建项目的方法步骤
Mar 06 Python
Python利用神经网络解决非线性回归问题实例详解
Jul 19 Python
Python通过cv2读取多个USB摄像头
Aug 28 Python
django创建简单的页面响应实例教程
Sep 06 Python
wxpython多线程防假死与线程间传递消息实例详解
Dec 13 Python
Python代码生成视频的缩略图的实例讲解
Dec 22 Python
Python+OpenCV实现图像的全景拼接
Mar 05 Python
python与pycharm有何区别
Jul 01 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扩展介绍与开发教程
2010/08/19 PHP
PHP中iconv函数知识汇总
2015/07/02 PHP
yii2.0框架实现上传excel文件后导入到数据库的方法示例
2020/04/13 PHP
JQuery toggle使用分析
2009/11/16 Javascript
jquery选择器排除某个DOM元素的方法(实例演示)
2014/04/25 Javascript
JavaScript匿名函数与委托使用示例
2014/07/22 Javascript
JavaScript中用toString()方法返回时间为字符串
2015/06/12 Javascript
简述JavaScript对传统文档对象模型的支持
2015/06/16 Javascript
javascript日期操作详解(脚本之家整理)
2015/09/05 Javascript
JQuery 在文档中查找指定name的元素并移除的实现方法
2016/05/19 Javascript
jQueryUI DatePicker 添加时分秒
2016/06/04 Javascript
javascript的document中的动态添加标签实现方法
2016/10/24 Javascript
BootStrap组件之进度条的基本用法
2017/01/19 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
2018/06/14 Javascript
vue微信分享到朋友圈 vue微信发送给好友
2018/11/28 Javascript
利用d3.js实现蜂巢图表带动画效果
2019/09/03 Javascript
解决layer弹出层msg的文字不显示的问题
2019/09/11 Javascript
jquery实现上传文件进度条
2020/03/26 jQuery
vue 组件简介
2020/07/31 Javascript
Python简单实现enum功能的方法
2016/04/25 Python
Python打印输出数组中全部元素
2018/03/13 Python
Python 常用日期处理 -- calendar 与 dateutil 模块的使用
2020/09/02 Python
新西兰第一的行李箱网站:luggage.co.nz
2019/07/22 全球购物
C语言编程练习
2012/04/02 面试题
药剂学专业应届生自荐信
2013/09/29 职场文书
银行实习生的自我评价
2013/12/09 职场文书
便利店投资的创业计划书
2014/01/12 职场文书
上班上网检讨书
2014/01/29 职场文书
挂职自我鉴定
2014/02/26 职场文书
班组建设经验交流材料
2014/05/12 职场文书
解除劳动合同协议书范本2014
2014/09/25 职场文书
收入及婚姻状况证明
2014/11/20 职场文书
团代会开幕词
2015/01/28 职场文书
门卫岗位职责
2015/02/09 职场文书
2015年班主任个人工作总结
2015/03/31 职场文书
python解决12306登录验证码的实现
2021/04/18 Python