Deployment
官方文件:How to deploy Django。部署方式大致分成兩類:平台即服務(PaaS,如 Render、PythonAnywhere、Railway),設定簡單、不用自己管伺服器;以及自管伺服器(VPS,如 DigitalOcean、Linode),彈性最高,但需要自己設定 nginx、WSGI 伺服器(如 Gunicorn)、資料庫等。第一次部署建議先從 PaaS 開始,熟悉整體流程後,有需要再考慮自管伺服器。
上線前的共通準備
不論部署到哪個平台,都需要先確認:
DEBUG = False:正式環境絕不能開啟DEBUG,否則錯誤時會把程式碼細節、環境變數暴露給訪客。SECRET_KEY:改用環境變數讀取,不要寫死在程式碼或提交進版本控制。ALLOWED_HOSTS:填入正式環境的網域,否則 Django 會直接拒絕請求。- 資料庫:多數 PaaS 建議正式環境改用 PostgreSQL,而不是開發用的 SQLite。
- 靜態檔案:先執行
python manage.py collectstatic,見 Static Files。
完整清單請對照官方的 Deployment checklist。
部署到 Render
Render 是目前很受歡迎的 PaaS,有免費方案,官方也提供針對 Django 的部署指南:Deploy a Django App on Render,內容涵蓋建立 Web Service、設定 PostgreSQL、環境變數等完整步驟,是第一次部署 Django 的推薦起點。
部署到 Railway
Railway 同樣是開發者常用的 PaaS,用 Git 推送後自動建置部署,也能一併建立 PostgreSQL 資料庫服務,操作介面直覺,適合搭配 影音教學資源 中的部署示範影片跟著操作。
部署到 PythonAnywhere
PythonAnywhere 是專為 Python/Django 設計的雲端主機,免費方案不需要信用卡即可註冊,且直接在瀏覽器內的主控台操作,不需要熟悉 Linux 指令列,適合初學者第一次體驗「把網站放上網路」的完整流程。
自管伺服器(DigitalOcean、Linode 等)
如果選擇 DigitalOcean、Linode 這類 VPS 自行架設,需要自己安裝、設定 Python 環境、WSGI 伺服器(例如 Gunicorn)、資料庫,並用 nginx 作為對外的反向代理伺服器,處理靜態檔案與 HTTPS,詳見 nginx 設定。這個方式彈性最高、成本也可能最低,但需要自行負責伺服器的維運與安全性更新。
下一步
自管伺服器時,對外服務請求的第一關通常是 nginx,設定方式請見 nginx 設定;若想搭配影片跟著操作完整部署流程,請見 影音教學資源。