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开发环境和运行环境的区别_Django 开发环境与生产环境的区分详解相关推荐

  1. python getsize_Python getsizeof()和getsize()区分详解

    sys.getsizeof() 获取程序中声明的一个整数,存储在变量中的大小,以字节(byte)为单位 import sys print(sys.getsizeof('')) print(sys.ge ...

  2. Qt开发技术:QCharts(三)QCharts样条曲线图介绍、Demo以及代码详解

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/108022984 各位读者,知识无穷而人力有穷 ...

  3. python getsize函数_Python getsizeof()和getsize()区分详解

    sys.getsizeof() 获取程序中声明的一个整数,存储在变量中的大小,以字节(byte)为单位 import sys print(sys.getsizeof('')) print(sys.ge ...

  4. [Python从零到壹] 三十六.图像处理基础篇之图像算术与逻辑运算详解

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  5. android 6.0 存储卡,Android 6.0区别U盘和SD卡设备的方法详解

    如下所示: public static boolean isSdcardExists(Context context) { StorageManager storageManager = Storag ...

  6. Django 开发环境与生产环境的区分详解

    Django 开发环境与生产环境的设置 在常规的Django工程开发中,我们经常会遇到一类问题,即:本地开发环境跟远程服务器生产环境配置不一样.对于这些不同之处,以前的做法是直接修改生产环境中的配置. ...

  7. log4j2 在开发环境(win)和测试环境(win)下均可以输出日志,但在生产环境(linux)无日志输出

    一.问题说明:在开发环境和测试环境下均可以输出日志,但在生产环境无日志输出. 二.发现问题:          1,系统不同:         开发环境和测试环境(windows)         生 ...

  8. python runner功能_Appium+python自动化(二十三)- 真假美猴王Monkeyrunner与Monkey傻傻的分不清楚(超详解)...

    简介 看<西游记>第五十七回,说是"六耳猕猴"化作孙悟空的摸样,伤了唐僧,后又和孙悟空大打出手-- 这位假孙悟空,实力不用多说了吧,和真孙悟空一般无二,大战孙悟空,闹到 ...

  9. Appium+python自动化(二十三)- 真假美猴王Monkeyrunner与Monkey傻傻的分不清楚(超详解)...

    简介 看<西游记>第五十七回,说是"六耳猕猴"化作孙悟空的摸样,伤了唐僧,后又和孙悟空大打出手-- 这位假孙悟空,实力不用多说了吧,和真孙悟空一般无二,大战孙悟空,闹到 ...

最新文章

  1. 几个数判断大小_chemistry three 配合物的配位数
  2. C++--深入分析MFC文档视图结构(项目实践)
  3. libevent使用IOCP网络模型的示例
  4. 用于弹出ModalDialog进行数据选择的控件
  5. iis 跨域_织梦会员登录二级域名不能跨域
  6. 微信小游戏凭什么拿走开发者 70% 的日流水?
  7. 谁在杀死Facebook?谁该为我们负责?
  8. 上下五千年,人口十几亿。在这遇见你,缘份真神奇
  9. python 图形库介绍_数据分析Python手绘图形库有哪些
  10. 工作流之工单模型(一)
  11. 实习周记---20180527
  12. 8.0强行转换后变成了7_南方Cass软件坐标转换方法!
  13. echarts饼状图设置位置
  14. Flutter基础学习(一)Dart语言入门
  15. idea关闭当前窗口的快捷键
  16. 分享一个漂亮的后台 admin 前端模板
  17. 外星人大战---------------游戏开发(二)
  18. 古诗名句分类二:事理哲理
  19. 浅谈单线程的Redis快的原因是什么
  20. vue elementui 将data中数据恢复到初始化状态

热门文章

  1. Redis应用场景说明与部署
  2. Golang 解决unsupported protocol scheme问题
  3. 移动端手势库Hammer.js学习
  4. 教程-MessageBox 使用方法
  5. !--处理:借款冲销不自动冲减预算--
  6. 关于node.js的web框架的应用及并发性能测试
  7. iOS6全系列设备完美越狱工具发布
  8. 2011最新个人所得税计算器---起点3500元
  9. Debain/ArchLinux/Gentoo 等将合并为超级Linux
  10. Python_note2 基本图形绘制+turtle库使用