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 Requests安装与简单运用
Apr 07 Python
浅谈Python由__dict__和dir()引发的一些思考
Oct 30 Python
python实现Floyd算法
Jan 03 Python
使用python爬虫实现网络股票信息爬取的demo
Jan 05 Python
对django xadmin自定义菜单的实例详解
Jan 03 Python
pyqt5 实现 下拉菜单 + 打开文件的示例代码
Jun 20 Python
Django 查询数据库并返回页面的例子
Aug 12 Python
git查看、创建、删除、本地、远程分支方法详解
Feb 18 Python
pytorch查看通道数 维数 尺寸大小方式
May 26 Python
pandas分批读取大数据集教程
Jun 06 Python
PyCharm2020.1.2社区版安装,配置及使用教程详解(Windows)
Aug 07 Python
python 逆向爬虫正确调用 JAR 加密逻辑
Jan 12 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函数getenv简介和使用实例
2014/05/12 PHP
Yii+upload实现AJAX上传图片的方法
2016/07/13 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
javascript onkeydown,onkeyup,onkeypress,onclick,ondblclick
2009/02/04 Javascript
javascript 不间断的图片滚动并可点击
2010/01/15 Javascript
整理一些JavaScript的IE和火狐的兼容性注意事项
2011/03/17 Javascript
javascript中的数字与字符串相加实例分析
2011/08/14 Javascript
js中top/parent/frame概述及案例应用
2013/02/06 Javascript
JavaScript之IE的fireEvent方法详细解析
2013/11/20 Javascript
JavaScript实现模仿桌面窗口的方法
2015/07/18 Javascript
javascript实现tab切换的四种方法
2015/11/05 Javascript
原生js模拟淘宝购物车项目实战
2015/11/18 Javascript
JS实现动态生成表格并提交表格数据向后端
2020/11/25 Javascript
nodejs微信公众号支付开发
2016/09/19 NodeJs
js实现加载更多功能实例
2016/10/27 Javascript
JS实现的表头列头固定页面功能示例
2017/01/10 Javascript
vue修改vue项目运行端口号的方法
2017/08/04 Javascript
关闭Vue计算属性自带的缓存功能方法
2018/03/02 Javascript
基于JavaScript实现瀑布流布局
2018/08/15 Javascript
cocos2dx+lua实现橡皮擦功能
2018/12/20 Javascript
jQuery实现表格的增、删、改操作示例
2019/01/27 jQuery
微信小程序 生成携带参数的二维码
2019/10/23 Javascript
JavaScript日期库date-fn.js使用方法解析
2020/09/09 Javascript
详解python中的time和datetime的常用方法
2019/07/08 Python
Python秒算24点实现及原理详解
2019/07/29 Python
python Matplotlib底图中鼠标滑过显示隐藏内容的实例代码
2019/07/31 Python
keras处理欠拟合和过拟合的实例讲解
2020/05/25 Python
HTML5 b和i标记将被赋予真正的语义
2009/07/16 HTML / CSS
HTML5 客户端数据库简易使用:IndexedDB
2019/12/19 HTML / CSS
大一自我鉴定范文
2013/10/04 职场文书
祖国在我心中演讲稿300字
2014/05/04 职场文书
2014年扫黄打非工作总结
2014/12/03 职场文书
员工辞职信范文
2015/03/02 职场文书
初中班级口号霸气押韵
2015/12/24 职场文书
开机音效回归! Windows 11重新引入开机铃声
2021/11/21 数码科技
vue实现列表垂直无缝滚动
2022/04/08 Vue.js