今天的實作內容主要根據教學網站進行。
接下來兩天的主要內容是將Django部屬到正式環境,讓使用者可以透過Internet使用。
在正式環境的選擇上,除了自己架設實體伺服器外,對於一個實驗性的小專案來說,使用雲端平台是個省時省力的好選擇。
雲服務有三種服務類型區別,分別是IaaS、PaaS、SaaS,其中SaaS跟今天內容比較不相關,就不多說明。
IaaS (Infrastructure as a Service):IaaS一般會提供事先安裝好的VM,除了基礎的OS和一些可挑選的套件外,若有其他需要使用的套件需要自己安裝在VM上,也因此有較高的彈性。對於管理者來說雖然省去硬體管理的人力外,但仍然要考慮網站伺服器、應用伺服器、負載平衡等架構。
PaaS (Platform as a Service):提供平台服務,使用者可省去對於作業系統、開發環境的管理人力,可更專注於開發功能。
目前有許多雲端平台可以做選擇,各雲端平台大多會提供一些試用方案,而這次將採用教學網站所用的Heroku。
在決定好雲端平台後,在放上正式環境之前,需要對settings.py做一些調整。
Django在建立startproject的時候,其產生的settings.py設定主要是為了方便開發與測試,但考量到正式環境的執行效能和安全性,需要對settings.py做一些調整。
DEBUG:在正式環境需設定為False。
SECRET_KEY:Django用來加密資訊的變數,在正式環境中不應該明文放在settings.py中,可以使用環境變數的方式讀取以增加安全性,或是分開放在別的檔案中。
import os
DEBUG = bool( os.environ.get('DJANGO_DEBUG', True) )
SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY','django-insecure-pbpcb*k@rr-=)7xja*da_w1t(y^zba7^lkwo0jhp2+9bv#tb&-')