零基础教你玩转Django之04篇 —— 拆解Settings.py文件

全网第一篇系列讲述Django线上项目实战的文章。python

上一篇咱们主要完成了Gua的POST请求,完善了RESTful API,实现了查询分页。那么这一节,咱们就要来讲一下如何把配置文件分离开来,以应对不同的工做环境。数据库

为啥要拆解配置

众所周知,在实际的软件开发过程当中,咱们写程序,确定是如今开发环境编写代码;当在开发环境编写完成咱们会把工程切换到测试环境,开始测试工做;在完成测试全部任务以后,确认项目正常运转,最后咱们就会切换到正式环境,也就是线上环境。因此,在这其中,就有三个环境须要咱们分别配置:bash

  • 开发环境;
  • 测试环境;
  • 线上环境

你们是否想过,在咱们的Django工程里,只有一个PeekpaHubTech/settings.py文件是配置文件。若是咱们每次都为了切换不一样的环境,而修改咱们的setting.py文件,会不会很麻烦?并且很容易发生错误。那么今天,皮爷就交给你们如何来拆分setting.py文件,来针对不一样的开发环境来作不一样的项目配置。微信

拆分settings.py文件

第一步:

首先,在PeekpaHubTech文件夹下面,也就是和settings.py文件夹同级。咱们先建立一个settings文件夹,同时,里面,里面要有一个叫__init__.py的空文件。app

这个文件的做用就是让咱们的settings文件夹底下的py文件,能够被其余地方的代码做为impot的对象引入。学习

第二步:

接着,咱们在settings文件夹底下,建立一个base.py文件和develop.py文件。固然,你有多少环境,就能够建立多少个py文件夹。好比online.pytest.py等等测试

第三步:

咱们把原先的settings.py文件里面的内容,所有移动到base.py文件中。网站

第四步:

在你建立的不一样环境的py文件的第一行,写入一下代码:ui

from .base import *   #NOQA复制代码

后面加了一个#NOQA只是为了避免让PEP8来检查咱们这个文件。spa

我这里是之建立了一个develop.py文件,因此,你能够把你在开发环境下面的配置信息,都填写到你对应的py文件夹下面,好比,我这里就把base.py文件夹里面的DATABASE移动到了develop.py文件夹下,固然,通常来讲,咱们不一样环境之间的切换,数据库环境的切换算是一个大头。

下面就是个人develop.py文件:

from .base import *   #NOQAfrom mongoengine import connect# SECURITY WARNING: don't run with debug turned on in production!DEBUG = TrueDATABASES = { 'default': { 'ENGINE': None, },}connect(CONFIG_JSON.get("mongo_databses").get("aliyun").get("config").get("database_name"), host=CONFIG_JSON.get("mongo_databses").get("aliyun").get("config").get("host"), port=CONFIG_JSON.get("mongo_databses").get("aliyun").get("config").get("port"))复制代码

很是的简介。这样,你就能够保证你在切换不一样的环境的时候,让系统启动时,读取不一样的配置信息就能够了。

这个时候,项目的工程样子就长这样:

第五步,最重要的一步:

这个时候,由于你已经把以前的settings.py文件移动到了settings文件夹下面,因此PeekpahubTech/settings.py文件你就能够删掉了。

在配置好PeekpahubTech/settings/base.py文件和PeekpahubTech/settings/develop.py文件以后,咱们须要在项目的两个地方作一下修改:

  • manage.py
  • PeekpahubTech/wsgi.py

这里,先说manage.py文件。咱们须要把:

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'PeekpaHubWebsite.settings')复制代码

改为:

profile = os.environ.get('PROJECT_PROFILE', 'develop')os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'PeekpaHubWebsite.settings.%s' % profile)复制代码

一样的,在PeekpahubTech/wsgi.py文件里,咱们须要把:

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'PeekpaHubWebsite.settings')复制代码

改为

profile = os.environ.get('PROJECT_PROFILE', 'develop')os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'PeekpaHubWebsite.settings.%s' % profile)复制代码

至此,全部操做就都算是修改完成了。

若是你在终端,经过命令行的命令python manage.py runserver

记住,这两个地方必定要改。这里的代码也很简单,就是把咱们的项目换成了develop环境而已。

最有提一下PyCharm运行

若是都修改好了,可是点击PyCharm右上角的绿色运行按钮发现报错,那么别慌,咱们须要调整一下PyCharm运行的参数环境。

点击那个Edit Configuration,而后来到这个界面:

看到Environment variables,而后咱们点进去:

value里面,填写正确的setting地址就能够了。

喜欢的同窗,能够把皮爷的文章分享出来,让跟多的人一块儿来学习。这个系列教程的文章,皮爷都会讲源代码放到 GitHub 上,想要获取代码的同窗,请关注微信公众号『皮爷撸码』,而后回复『网站代码』便可得到连接地址。这里有更多更好玩的东西,等你一块儿来学习提升。

相关文章
相关标签/搜索