zoukankan      html  css  js  c++  java
  • Django添加生产环境配置

    在初始化阶段,Django会帮我们创建一个settings.py目录,所有Django的配置都在这个模块中,这样就会产生一些问题,比如同一份配置怎么来更好的区分开发环境和线上环境。当然可以在settings中编写if....else之类的条件,但是这样会导致settings会越来越复杂。

    理论上说开发环境的配置和生产环境的配置完全没关系,我们在维护生产环境的配置时,不需要考虑其他环境的配置,因此就有了拆分的逻辑。

    具体的做法是把之前的settings.py中的内容放在settings/base.py中,删除原settings.py文件,同时新增__init__.pydevelop.pyproduct.py。拆分独立模块之后,把需要的独立配置的内容分别放在不同的模块中,比如DATABASE配置,在develop.py中可以配置SQLite数据库,在produect.py中配置正式的MySQL数据库等。

    下面是相关的具体配置(仅以创建develop,区分不同数据库为例,product类似):

    1. settings.py同级目录下创建setttings的python package文件夹。

      tips: 或者新建文件夹,创建__init__.py文件

    2. setting.py copy 到settings文件夹中,并重命名为base.py, 新建develop.py

    3. develop.py 中进行相关数据库配置

      from .base import *
      
       DEBUG = True
      
       DATABASES = {
           'default': {
               'ENGINE': 'django.db.backends.sqlite3',
               'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
           }
       }
      
    4. 修改django的启动文件

      manage.pywsgi.py中的代码

      os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'ideatype.settings')

      替换为

      profile = os.environ.get('TYPEIDEA_PROFILE', 'develop')
      os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'ideatype.settings.%s' %profile)
      
      
    5. 配置环境变量

      开发环境:TYPEIDEA_PROFILE = develop

      执行命令:

      • echo export TYPEIDEA_PROFILE=develop >> /etc/profile
      • source /etc/profile
  • 相关阅读:
    关于BindingSource的ListChange事件
    .Net 中Textbox控件的数据绑定
    Google Chrome OS Open Source Project Announcement
    ajax从基础开始
    如何处理Windows Forms程序中未处理的异常
    Chrome的一个bug? 大家看看
    Extjs学习笔记之二——初识Extjs之Form
    SQLite3简介及在.Net程序中的使用
    Extjs学习笔记之一——初识Extjs之MessageBox
    Extjs学习笔记之三——更多的表单项
  • 原文地址:https://www.cnblogs.com/ZSMblog/p/11677244.html
Copyright © 2011-2022 走看看