Flask 部署

2022-08-16 16:40 更新

開發(fā)服務(wù)器上的Flask應(yīng)用程序只能在設(shè)置了開發(fā)環(huán)境的計算機上訪問。這是一種默認行為,因為在調(diào)試模式下,用戶可以在計算機上執(zhí)行任意代碼。

如果禁用了debug,則可以通過將主機名設(shè)置為'0.0.0.0',使本地計算機上的開發(fā)服務(wù)器可供網(wǎng)絡(luò)上的用戶使用。

app.run(host = ’0.0.0.0’)

因此,您的操作系統(tǒng)將偵聽所有公共IP。

部署

要從開發(fā)環(huán)境切換到成熟的生產(chǎn)環(huán)境,需要在真實的Web服務(wù)器上部署應(yīng)用程序。根據(jù)您的具體情況,可以使用不同的選項來部署Flask Web應(yīng)用程序。

對于小型應(yīng)用程序,您可以考慮在以下任何托管平臺上部署它,所有這些平臺都為小型應(yīng)用程序提供免費計劃。

  • Heroku
  • dotcloud
  • webfaction

Flask應(yīng)用程序可以部署在這些云平臺上。此外,可以在云平臺上部署Flask應(yīng)用程序。

Localtunnel服務(wù)允許您在localhost上共享您的應(yīng)用程序,而不會破壞DNS和防火墻設(shè)置。

如果您傾向于使用專用Web服務(wù)器代替上述共享平臺,則可以使用以下選項進行探索。

mod_wsgi

mod_wsgi是一個Apache模塊,它提供了一個WSGI兼容接口,用于在Apache服務(wù)器上托管基于Python的Web應(yīng)用程序。

安裝mod_wsgi

要直接從PyPi安裝官方發(fā)行版,你可以運行:

pip install mod_wsgi

要驗證安裝是否成功,請使用start-server命令運行mod_wsgi-express腳本:

mod_wsgi-express start-server

這將在端口8000上啟動Apache/mod_wsgi。然后,您可以通過將瀏覽器指向以下內(nèi)容來驗證安裝是否有效:

http://localhost:8000/

創(chuàng)建.wsgi文件

應(yīng)該有一個yourapplication.wsgi文件。此文件包含代碼mod_wsgi,該代碼在啟動時執(zhí)行以獲取應(yīng)用程序?qū)ο蟆?/p>

對于大多數(shù)應(yīng)用程序,以下文件應(yīng)該足夠了:

from yourapplication import app as application

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

配置Apache

您需要告訴mod_wsgi,您的應(yīng)用程序的位置:

<VirtualHost *>
   ServerName example.com
   WSGIScriptAlias / C:\yourdir\yourapp.wsgi
   
   <Directory C:\yourdir>
      Order deny,allow
      Allow from all
   </Directory>
   
</VirtualHost>

獨立的WSGI容器

有很多流行的服務(wù)器用Python編寫,它們包含WSGI應(yīng)用程序并提供HTTP服務(wù)。

  • Gunicorn
  • Tornado
  • Gevent
  • Twisted Web

靜態(tài)文件處理

  1. 準備靜態(tài)資源
    python
    在項目根目錄下(blog)創(chuàng)建static目錄
    將圖片拷貝到static下
  2. ?配置nginx轉(zhuǎn)發(fā)

# 添加一個location
location /static{
  # root html/blog;
  # 或
  alias html/blog/static;  # 兩種方式都可以
}


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號