iT邦幫忙

2021 iThome 鐵人賽

DAY 26
1
自我挑戰組

Python 30天自我挑戰系列 第 26

Day26 - 部屬到正式環境 (1)

今天的實作內容主要根據教學網站進行。

接下來兩天的主要內容是將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&-')

上一篇
Day25 - 使用Django-Q排程
下一篇
Day27 - 部屬到正式環境 (2)
系列文
Python 30天自我挑戰30

尚未有邦友留言

立即登入留言