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 相关文章推荐
Python3基础之输入和输出实例分析
Aug 18 Python
python多线程编程中的join函数使用心得
Sep 02 Python
Python通过90行代码搭建一个音乐搜索工具
Jul 29 Python
Python如何import文件夹下的文件(实现方法)
Jan 24 Python
python实现字符串和字典的转换
Sep 29 Python
python bmp转换为jpg 并删除原图的方法
Oct 25 Python
python实现简单多人聊天室
Dec 11 Python
Python实现的旋转数组功能算法示例
Feb 23 Python
Pandas读写CSV文件的方法示例
Mar 27 Python
基于Python的Jenkins的二次开发操作
May 12 Python
你需要学会的8个Python列表技巧
Jun 24 Python
python Cartopy的基础使用详解
Nov 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
建立动态的WML站点(一)
2006/10/09 PHP
PHP 下载文件时自动添加bom头的方法实例
2014/01/10 PHP
新浪微博OAuth认证和储存的主要过程详解
2015/03/27 PHP
PHP+MySQL实现的简单投票系统实例
2016/02/24 PHP
php简单统计中文个数的方法
2016/09/30 PHP
php实现mysql连接池效果实现代码
2018/01/25 PHP
使用onbeforeunload属性后的副作用
2007/03/08 Javascript
js 获取class的元素的方法 以及创建方法getElementsByClassName
2013/03/11 Javascript
从JQuery源码分析JavaScript函数的apply方法与call方法
2014/09/25 Javascript
jquery超简单实现手风琴效果的方法
2015/06/05 Javascript
javascript实现简单的on事件绑定
2016/08/23 Javascript
AngularJS 所有版本下载地址
2016/09/14 Javascript
JS实现汉字与Unicode码相互转换的方法详解
2017/04/28 Javascript
JQuery.dataTables表格插件添加跳转到指定页
2017/06/09 jQuery
js案例之鼠标跟随jquery版(实例讲解)
2017/07/21 jQuery
使用express+multer实现node中的图片上传功能
2018/02/02 Javascript
jQuery轮播图实例详解
2018/08/15 jQuery
vue+element UI实现树形表格带复选框的示例代码
2019/04/16 Javascript
了解重排与重绘
2019/05/29 Javascript
微信小程序实现拖拽功能
2019/09/26 Javascript
python调用cmd复制文件代码分享
2013/12/27 Python
详解Django中的权限和组以及消息
2015/07/23 Python
Python判断变量是否为Json格式的字符串示例
2017/05/03 Python
Python实现使用卷积提取图片轮廓功能示例
2018/05/12 Python
opencv实现静态手势识别 opencv实现剪刀石头布游戏
2019/01/22 Python
用Python抢火车票的简单小程序实现解析
2019/08/14 Python
Python读写文件模式和文件对象方法实例详解
2019/09/17 Python
关于Pytorch的MNIST数据集的预处理详解
2020/01/10 Python
如何理解Python中包的引入
2020/05/29 Python
matlab、python中矩阵的互相导入导出方式
2020/06/01 Python
CSS实现限制字数功能当对象内文本溢出时显示省略标记
2014/08/20 HTML / CSS
来自美国主售篮球鞋的零售商店:KICKSUSA
2017/11/28 全球购物
意大利在线购买隐形眼镜网站:VisionDirect.it
2019/03/18 全球购物
2015关于重阳节的演讲稿
2015/03/20 职场文书
Python代码风格与编程习惯重要吗?
2021/06/03 Python
JavaScript中MutationObServer监听DOM元素详情
2021/11/27 Javascript