Flask – 部署



外部可見伺服器

在開發伺服器上的 Flask 應用程式只能在設定了開發環境的計算機上訪問。這是預設行為,因為在除錯模式下,使用者可以在計算機上執行任意程式碼。

如果停用debug,可以透過將主機名設定為‘0.0.0.0’ 來使本地計算機上的開發伺服器可供網路上的使用者訪問。

app.run(host = ’0.0.0.0’)

這樣,您的作業系統就會監聽所有公共 IP。

部署

要從開發環境切換到成熟的生產環境,需要將應用程式部署到真實的 Web 伺服器上。根據您的情況,可以使用不同的選項來部署 Flask Web 應用程式。

對於小型應用程式,您可以考慮將其部署在以下任何託管平臺上,所有這些平臺都為小型應用程式提供免費計劃。

  • Heroku
  • dotcloud
  • webfaction

Flask 應用程式可以部署到這些雲平臺上。此外,還可以將 Flask 應用程式部署到 Google Cloud Platform。Localtunnel 服務允許您共享 localhost 上的應用程式,而無需修改 DNS 和防火牆設定。

如果您傾向於使用專用 Web 伺服器來代替上述共享平臺,則可以探索以下選項。

mod_wsgi

mod_wsgi 是一個 Apache 模組,它提供了一個符合 WSGI 的介面,用於在 Apache 伺服器上託管基於 Python 的 Web 應用程式。

安裝 mod_wsgi

要直接從 PyPi 安裝官方版本,您可以執行:

pip install mod_wsgi

要驗證安裝是否成功,請使用 start-server 命令執行 mod_wsgi-express 指令碼:

mod_wsgi-express start-server

這將在 8000 埠啟動 Apache/mod_wsgi。然後,您可以透過將瀏覽器指向以下地址來驗證安裝是否成功:

https://:8000/

建立 .wsgi 檔案

應該有一個yourapplication.wsgi檔案。此檔案包含mod_wsgi程式碼,該程式碼在啟動時執行以獲取應用程式物件。對於大多數應用程式,以下檔案應該足夠:

from yourapplication import app as application

確保yourapplication和所有正在使用的庫都在 python 載入路徑上。

配置 Apache

您需要告訴mod_wsgi您的應用程式的位置。

<VirtualHost *>
   ServerName example.com
   WSGIScriptAlias / C:\yourdir\yourapp.wsgi

   <Directory C:\yourdir>
      Order deny,allow
      Allow from all
   </Directory>

</VirtualHost>

獨立 WSGI 容器

有很多流行的用 Python 編寫的伺服器包含 WSGI 應用程式並提供 HTTP 服務。

  • Gunicorn
  • Tornado
  • Gevent
  • Twisted Web
廣告