零基礎教你玩轉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 上,想要獲取代碼的同窗,請關注微信公衆號『皮爺擼碼』,而後回覆『網站代碼』便可得到連接地址。這裏有更多更好玩的東西,等你一塊兒來學習提升。

相關文章
相關標籤/搜索