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中的__new__与__init__魔术方法理解笔记
Nov 08 Python
python 基础教程之Map使用方法
Jan 17 Python
python pandas 组内排序、单组排序、标号的实例
Apr 12 Python
pyqt5 使用cv2 显示图片,摄像头的实例
Jun 27 Python
python retrying模块的使用方法详解
Sep 25 Python
Python 日期的转换及计算的具体使用详解
Jan 16 Python
Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)
Feb 07 Python
Python 定义只读属性的实现方式
Mar 05 Python
如何理解python中数字列表
May 29 Python
利用keras使用神经网络预测销量操作
Jul 07 Python
Python 字典一个键对应多个值的方法
Sep 29 Python
Python+Selenium自动化环境搭建与操作基础详解
Mar 13 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连接access数据库
2008/03/27 PHP
如何使用PHP批量去除文件UTF8 BOM信息
2013/08/05 PHP
javascript 复杂的嵌套环境中输出单引号和双引号
2009/05/26 Javascript
Javascript Boolean、Nnumber、String 强制类型转换的区别详细介绍
2012/12/13 Javascript
JS实现div内部的文字或图片自动循环滚动代码
2013/04/19 Javascript
原生javascript和jquery判断浏览器版本等信息
2013/07/04 Javascript
js禁止页面使用右键(简单示例代码)
2013/11/13 Javascript
jQuery旋转木马式幻灯片轮播特效
2015/12/04 Javascript
JavaScript的ExtJS框架中表格的编写教程
2016/05/21 Javascript
Bootstrap源码解读表单(2)
2016/12/22 Javascript
微信小程序自动客服功能
2017/11/02 Javascript
JavaScript链式调用实例浅析
2018/12/19 Javascript
3分钟了解vue数据劫持的原理实现
2019/05/01 Javascript
es6中reduce的基本使用方法
2019/09/10 Javascript
OpenLayers3实现图层控件功能
2020/09/25 Javascript
javascript中layim之查找好友查找群组
2021/02/06 Javascript
[02:36]DOTA2英雄基础教程 一击致命幻影刺客
2013/12/06 DOTA
python中list循环语句用法实例
2014/11/10 Python
python使用epoll实现服务端的方法
2018/10/16 Python
详解PyCharm安装MicroPython插件的教程
2019/06/24 Python
python+numpy实现的基本矩阵操作示例
2019/07/19 Python
详细介绍Python进度条tqdm的使用
2019/07/31 Python
Python监控服务器实用工具psutil使用解析
2019/12/19 Python
Python 如何创建一个简单的REST接口
2020/07/30 Python
详解HTML5中ol标签的用法
2015/09/08 HTML / CSS
香港卓悦化妆品官网:BONJOUR
2017/09/21 全球购物
Tripadvisor新西兰:阅读评论,比较价格和酒店预订
2018/02/10 全球购物
美国NBA官方商店:NBA Store
2019/04/12 全球购物
建龙钢铁面试总结
2014/04/15 面试题
职业生涯规划书基本格式
2014/01/06 职场文书
老总助理工作岗位职责
2014/02/06 职场文书
2015年个人自我剖析材料
2014/12/29 职场文书
经典导游欢迎词
2015/01/26 职场文书
网站文案策划岗位职责
2015/04/14 职场文书
分享3个非常实用的 Python 模块
2022/03/03 Python
Win10本地连接不见了怎么恢复? win10系统电脑本地连接不见了解决方法
2023/01/09 数码科技