全網第一篇系列講述Django線上項目實戰的文章。python
上一篇咱們主要完成了Gua的POST請求,完善了RESTful API,實現了查詢分頁。那麼這一節,咱們就要來講一下如何把配置文件分離開來,以應對不同的工做環境。數據庫
衆所周知,在實際的軟件開發過程當中,咱們寫程序,確定是如今開發環境編寫代碼;當在開發環境編寫完成咱們會把工程切換到測試環境,開始測試工做;在完成測試全部任務以後,確認項目正常運轉,最後咱們就會切換到正式環境,也就是線上環境。因此,在這其中,就有三個環境須要咱們分別配置:bash
你們是否想過,在咱們的Django工程裏,只有一個PeekpaHubTech/settings.py
文件是配置文件。若是咱們每次都爲了切換不一樣的環境,而修改咱們的setting.py
文件,會不會很麻煩?並且很容易發生錯誤。那麼今天,皮爺就交給你們如何來拆分setting.py
文件,來針對不一樣的開發環境來作不一樣的項目配置。微信
首先,在PeekpaHubTech
文件夾下面,也就是和settings.py
文件夾同級。咱們先建立一個settings
文件夾,同時,裏面,裏面要有一個叫__init__.py
的空文件。app
這個文件的做用就是讓咱們的settings
文件夾底下的py
文件,能夠被其餘地方的代碼做爲impot
的對象引入。學習
接着,咱們在settings
文件夾底下,建立一個base.py
文件和develop.py
文件。固然,你有多少環境,就能夠建立多少個py
文件夾。好比online.py
,test.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運行的參數環境。
點擊那個Edit Configuration
,而後來到這個界面:
看到Environment variables
,而後咱們點進去:
在value
裏面,填寫正確的setting地址就能夠了。
喜歡的同窗,能夠把皮爺的文章分享出來,讓跟多的人一塊兒來學習。這個系列教程的文章,皮爺都會講源代碼放到 GitHub 上,想要獲取代碼的同窗,請關注微信公衆號『皮爺擼碼』,而後回覆『網站代碼』便可得到連接地址。這裏有更多更好玩的東西,等你一塊兒來學習提升。