開發(fā)服務(wù)器上的Flask應(yīng)用程序只能在設(shè)置了開發(fā)環(huán)境的計(jì)算機(jī)上訪問。 這是一種默認(rèn)行為,因?yàn)樵谡{(diào)試模式下,用戶可以在計(jì)算機(jī)上執(zhí)行任意代碼。
如果禁用了調(diào)試,則通過將主機(jī)名設(shè)置為:0.0.0.0,可以使網(wǎng)絡(luò)上的用戶可以使用本地計(jì)算機(jī)上的開發(fā)服務(wù)器。
# Filename : example.py # Copyright : 2020 By Nhooo # Author by : www.soo66.com # Date : 2020-08-08 app.run(host = ’0.0.0.0’)
這樣,您的操作系統(tǒng)會(huì)偵聽所有公共IP,也就是說,所有請求都會(huì)被處理。
要從開發(fā)環(huán)境切換到完整的生產(chǎn)環(huán)境,應(yīng)用程序需要部署在真正的Web服務(wù)器上。 根據(jù)您的具體情況,可以使用不同的選項(xiàng)來部署Flask Web應(yīng)用程序。
對于小型應(yīng)用程序,可以考慮將其部署在以下任何托管平臺(tái)上,所有這些平臺(tái)都提供針對小型應(yīng)用程序的免費(fèi)計(jì)劃。
Heroku dotcloud webfaction
Flask應(yīng)用程序可以部署在這些云平臺(tái)上。 另外,可以在Google云平臺(tái)上部署Flask應(yīng)用程序。 Localtunnel服務(wù)允許您在本地主機(jī)上共享您的應(yīng)用程序,而不會(huì)混淆DNS和防火墻設(shè)置。
如果您傾向于使用專用Web服務(wù)器來代替上述共享平臺(tái),則可以使用以下選項(xiàng)。
mod_wsgi是一個(gè)Apache模塊,它提供了一個(gè)用于在Apache服務(wù)器上托管基于Python的Web應(yīng)用程序的WSGI兼容接口。
安裝mod_wsgi
要從PyPi直接安裝正式版本,可以運(yùn)行 -
# Filename : example.py # Copyright : 2020 By Nhooo # Author by : www.soo66.com # Date : 2020-08-08 pip install mod_wsgi
要驗(yàn)證安裝是否成功,使用start-server命令運(yùn)行mod_wsgi-express腳本 -
# Filename : example.py # Copyright : 2020 By Nhooo # Author by : www.soo66.com # Date : 2020-08-08 mod_wsgi-express start-server
它將在端口:8000上啟動(dòng) Apache/mod_wsgi。然后,可以通過將瀏覽器指向 -
# Filename : example.py # Copyright : 2020 By Nhooo # Author by : www.soo66.com # Date : 2020-08-08 http://localhost:8000/
創(chuàng)建.wsgi文件
應(yīng)該有一個(gè) yourapplication.wsgi 文件。 該文件包含代碼mod_wsgi,該代碼在啟動(dòng)時(shí)執(zhí)行以獲取應(yīng)用程序?qū)ο蟆?對于大多數(shù)應(yīng)用程序,以下文件應(yīng)該足夠 -
# Filename : example.py # Copyright : 2020 By Nhooo # Author by : www.soo66.com # Date : 2020-08-08 from yourapplication import app as application
確保yourapplication和所有正在使用的庫位于python加載路徑上。
配置Apache
需要告訴mod_wsgi,應(yīng)用程序的位置。參考以下配置 -
# Filename : example.py # Copyright : 2020 By Nhooo # Author by : www.soo66.com # Date : 2020-08-08 <VirtualHost *> ServerName example.com WSGIScriptAlias / C:\yourdir\yourapp.wsgi <Directory C:\yourdir> Order deny,allow Allow from all </Directory> </VirtualHost>
有許多以Python編寫的流行服務(wù)器,其中包含WSGI應(yīng)用程序并提供HTTP服務(wù)。
Gunicorn Tornado Gevent Twisted Web