Python: 為正式部署準備 Python 與 Flask

本文件是建立 REST API指南的一部分。請在此處查看完整指南:使用 Python 的 Flask 建立 REST API 的逐步指南

👋 歡迎來到 Stackhero 文件中心!

Stackhero 提供即時可用的 Python 雲端 解決方案,專為簡化您的部署流程而設計:

  • 只需一個簡單的 git push,即可在數秒內將您的應用程式部署到正式環境。
  • 支援自訂網域名稱,並為您自動設定 HTTPS 憑證,確保連線安全。
  • 享有自動備份一鍵更新可預測的計價,讓您專注於程式開發,而無需煩惱基礎架構管理。
  • 專屬私有基礎架構上,獲得強大的效能安全性。您的執行環境完全隔離並受到保護。

節省時間簡化您的工作流程:透過 Stackhero 的 Python 雲端主機,您的程式碼只需 5 分鐘即可上線運作。

Flask 內建伺服器適合開發階段使用。若要部署到正式環境,建議使用如 Gunicorn 這類穩定的 WSGI 伺服器。以下是準備方式:

  1. 安裝 Gunicorn:

    pip install gunicorn
    pip freeze > requirements.txt
    
  2. 使用 Gunicorn 啟動您的應用程式:

    ENV=production gunicorn app:app \
      --error-logfile - \
      -b 0.0.0.0:8080
    

    這裡的 app:app 指的是您的檔案(app.py)與 Flask 應用實例(app)。

  3. 您可以新增 Makefile,方便在開發與正式模式間切換:

    .DEFAULT_GOAL := dev
    
    # Stackhero for Python 預設執行 "run" 規則。我們覆寫為執行 'prod'。
    run: prod
    
    prod:
    	ENV=production gunicorn app:app \
    	  --error-logfile - \
    	  -b 0.0.0.0:8080
    
    dev:
    	python app.py
    

您可以用 make dev(或直接 make)啟動開發模式,或用 make prod 啟動正式模式。