這篇文章主要介紹了flask如何結(jié)合apache,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了茶陵免費(fèi)建站歡迎大家使用!
flask自帶的開發(fā)Web服務(wù)器表現(xiàn)很差,響應(yīng)慢,而且直接通過nginx進(jìn)行反向代理,經(jīng)常無法響應(yīng)請(qǐng)求。有兩個(gè)可以在生產(chǎn)環(huán)境中使用、性能良好且支持Flask程序的服務(wù)器,分別是Gunicorn和uWSGI,但是這兩個(gè)模塊不提供對(duì)window的支持。
因此我們需要使用mod_wsgi這個(gè)模塊使得flask能夠在apache上進(jìn)行部署,mod_wsgi模塊是一個(gè)python寫的Apache的FastCGI模塊。 (推薦學(xué)習(xí):apache使用)
下載完畢后解壓得到Apache24,打開進(jìn)入conf文件,用文本打開,我這里采用Atom打開。
現(xiàn)在說明一下,我們需要修改的地方:
1、ServerRoot "c:/Apache24":修改成自己的目錄地址
2、Listen 8080:端口號(hào)配置,部分用戶可能會(huì)發(fā)現(xiàn)自己的80端口占用,可能是IIS或者SQLserver占用,我們可以通過修改這個(gè)端口號(hào),方便測試
3、修改目錄授權(quán)
原本的:
AllowOverride none Require all denied
修改后:
Options FollowSymLinks AllowOverride None Order deny,allow Allow from all
4、修改文檔根路徑為自己的文件路徑
DocumentRoot "c:/Apache24/htdocs"
5、mod模塊配置(重點(diǎn))
(1)首先對(duì)下載下來的mod.whl文件進(jìn)行安裝:
pip install <文件絕對(duì)路徑>
(2)安裝成功后,運(yùn)行下面的命令:
mod_wsgi-express module-config
(3)上面這條命令成功運(yùn)行后,我們可以得到三條信息:
(4)然后使用這三條信息代替.so文件,加入到apache的配置文件中:
6、配置站點(diǎn)(重點(diǎn)):
#definition. These values also provide defaults for # any containers you may define later in the file.
因?yàn)槲沂且粋€(gè)不是很懂配置apache的人,我一開始看到參考鏈接中的配置
將下面這段復(fù)制到conf文件的最底部,并且修改路徑為自己的路徑
ServerAdmin example@xx.com DocumentRoot E:\Environment\Apache\Apache24\text_web Order allow,deny Allow from all WSGIScriptAlias / E:\Environment\Apache\Apache24\text_web\test.wsgi
上面的站點(diǎn)配置說明:
(1)項(xiàng)目路徑(不一定要放在apache目錄下):
DocumentRoot E:\Environment\Apache\Apache24\text_web
(2)wsgi模塊啟動(dòng)文件(重點(diǎn)):
WSGIScriptAlias / E:\Environment\Apache\Apache24\text_web\test.wsgi
注意:這里的“/”是必須的,表示url前綴,后面可以根據(jù)需求修改。
(3)項(xiàng)目路徑權(quán)限:設(shè)置為允許全部
Order allow,deny Allow from all
到這里我們的httpd.conf文件已經(jīng)配置完成了。
二、下面進(jìn)入對(duì)flask項(xiàng)目的配置:
項(xiàng)目目錄:
1、test.wsgi文件說明:
import sys sys.path.insert(0, "E:/Environment/Apache/Apache24/text_web") #項(xiàng)目路徑
from test import app #將我們的flask項(xiàng)目project名引入
application = app #applcation一定不能改成別的,因?yàn)閣sgin在解析這個(gè)文件時(shí),只認(rèn)applcation(參考鏈接)
2、flask的主文件
from flask import Flask app = Flask(__name__) @app.route('/hello') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run()
到此,我們的項(xiàng)目配置基本完成,這里特別需要注意的是在wsgi文件中的項(xiàng)目引入。
三、啟動(dòng)或安裝apache
啟動(dòng)管理員模式的cmd進(jìn)入到Apache24的bin文件路徑下:
安裝apache為系統(tǒng)服務(wù):
httpd -k install
啟動(dòng)apache:
httpd -k start
我發(fā)現(xiàn)有的電腦可以直接通過打開httpd.exe直接運(yùn)行,而不需要將httpd安裝入系統(tǒng)服務(wù)。
其他可能用到的apache命令:
停止apache服務(wù):
httpd -k stop
重啟apache服務(wù):
httpd -k restart
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享flask如何結(jié)合apache內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來學(xué)習(xí)!