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 相关文章推荐
详解duck typing鸭子类型程序设计与Python的实现示例
Jun 03 Python
python魔法方法-属性访问控制详解
Jul 25 Python
django初始化数据库的实例
May 27 Python
Python中偏函数用法示例
Jun 07 Python
利用Python查看微信共同好友功能的实现代码
Apr 24 Python
解决django后台样式丢失,css资源加载失败的问题
Jun 11 Python
Python获取好友地区分布及好友性别分布情况代码详解
Jul 10 Python
numpy数组做图片拼接的实现(concatenate、vstack、hstack)
Nov 08 Python
Django配置文件代码说明
Dec 04 Python
Python常用模块sys,os,time,random功能与用法实例分析
Jan 07 Python
Python列表list操作相关知识小结
Jan 29 Python
BeautifulSoup中find和find_all的使用详解
Dec 07 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中strtotime函数使用方法分享
2012/01/10 PHP
php调用dll的实例操作动画与代码分享
2012/08/14 PHP
PHP抽奖算法程序代码分享
2015/10/08 PHP
PHP会话控制实例分析
2016/12/24 PHP
PHP实现用户登录的案例代码
2018/05/10 PHP
Thinkphp5.0 框架的请求方式与响应方式分析
2019/10/14 PHP
js报错 Object doesn't support this property or method的原因分析
2011/03/31 Javascript
Jquery 在页面加载后执行的几种方式
2014/03/14 Javascript
js操作模态窗口及父子窗口间相互传值示例
2014/06/09 Javascript
nodejs中实现阻塞实例
2015/03/24 NodeJs
jQuery实现带有洗牌效果的动画分页实例
2015/08/31 Javascript
js仿微信公众平台打标签功能
2017/04/08 Javascript
Bootstrap标签页(Tab)插件切换echarts不显示问题的解决
2018/07/13 Javascript
优雅的在React项目中使用Redux的方法
2018/11/10 Javascript
[01:35:53]完美世界DOTA2联赛PWL S3 Magma vs GXR 第二场 12.13
2020/12/17 DOTA
测试、预发布后用python检测网页是否有日常链接
2014/06/03 Python
Python编写生成验证码的脚本的教程
2015/05/04 Python
深入解析Python中的lambda表达式的用法
2015/08/28 Python
opencv python 2D直方图的示例代码
2018/07/20 Python
解决Python命令行下退格,删除,方向键乱码(亲测有效)
2020/01/16 Python
如何使用python传入不确定个数参数
2020/02/18 Python
Python2 与Python3的版本区别实例分析
2020/03/30 Python
python实现程序重启和系统重启方式
2020/04/16 Python
HTML5上传文件显示进度的实现代码
2012/08/30 HTML / CSS
美国最流行的男士时尚网站:Touch of Modern
2018/02/05 全球购物
C语言50道问题
2014/10/23 面试题
关于Java finally的面试题
2016/04/27 面试题
财务副总经理工作职责
2013/11/25 职场文书
汽车装潢店创业计划书范文
2014/02/05 职场文书
法人代表委托书
2014/04/04 职场文书
2014年中秋节活动总结
2014/08/29 职场文书
群众路线教育实践活动方案
2014/10/31 职场文书
村党的群众路线教育实践活动总结材料
2014/10/31 职场文书
普宁寺导游词
2015/02/04 职场文书
汽车4S店前台接待岗位职责
2015/04/03 职场文书
Spring Data JPA框架自定义Repository接口
2022/04/28 Java/Android