Flask 部署

2022-08-16 16:40 更新

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

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

app.run(host = ’0.0.0.0’)

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

部署

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

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

  • Heroku
  • dotcloud
  • webfaction

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

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

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

mod_wsgi

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

安裝mod_wsgi

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

pip install mod_wsgi

要驗(yàn)證安裝是否成功,請(qǐng)使用start-server命令運(yùn)行mod_wsgi-express腳本:

mod_wsgi-express start-server

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

http://localhost:8000/

創(chuàng)建.wsgi文件

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

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

from yourapplication import app as application

確保yourapplication和所有正在使用的庫(kù)都在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>

獨(dú)立的WSGI容器

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

  • Gunicorn
  • Tornado
  • Gevent
  • Twisted Web

靜態(tài)文件處理

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

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


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)