這篇文章主要介紹了flask如何結(jié)合apache,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
為衛(wèi)東等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及衛(wèi)東網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、衛(wèi)東網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!flask自帶的開發(fā)Web服務(wù)器表現(xiàn)很差,響應(yīng)慢,而且直接通過nginx進行反向代理,經(jīng)常無法響應(yīng)請求。有兩個可以在生產(chǎn)環(huán)境中使用、性能良好且支持Flask程序的服務(wù)器,分別是Gunicorn和uWSGI,但是這兩個模塊不提供對window的支持。
因此我們需要使用mod_wsgi這個模塊使得flask能夠在apache上進行部署,mod_wsgi模塊是一個python寫的Apache的FastCGI模塊。 (推薦學(xué)習(xí):apache使用)
下載完畢后解壓得到Apache24,打開進入conf文件,用文本打開,我這里采用Atom打開。
現(xiàn)在說明一下,我們需要修改的地方:
1、ServerRoot "c:/Apache24":修改成自己的目錄地址
2、Listen 8080:端口號配置,部分用戶可能會發(fā)現(xiàn)自己的80端口占用,可能是IIS或者SQLserver占用,我們可以通過修改這個端口號,方便測試
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模塊配置(重點)
(1)首先對下載下來的mod.whl文件進行安裝:
pip install <文件絕對路徑>
(2)安裝成功后,運行下面的命令:
mod_wsgi-express module-config
(3)上面這條命令成功運行后,我們可以得到三條信息:
(4)然后使用這三條信息代替.so文件,加入到apache的配置文件中:
6、配置站點(重點):
#definition. These values also provide defaults for # any containers you may define later in the file.
因為我是一個不是很懂配置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
上面的站點配置說明:
(1)項目路徑(不一定要放在apache目錄下):
DocumentRoot E:\Environment\Apache\Apache24\text_web
(2)wsgi模塊啟動文件(重點):
WSGIScriptAlias / E:\Environment\Apache\Apache24\text_web\test.wsgi
注意:這里的“/”是必須的,表示url前綴,后面可以根據(jù)需求修改。
(3)項目路徑權(quán)限:設(shè)置為允許全部
Order allow,deny Allow from all
到這里我們的httpd.conf文件已經(jīng)配置完成了。
二、下面進入對flask項目的配置:
項目目錄:
1、test.wsgi文件說明:
import sys sys.path.insert(0, "E:/Environment/Apache/Apache24/text_web") #項目路徑
from test import app #將我們的flask項目project名引入
application = app #applcation一定不能改成別的,因為wsgin在解析這個文件時,只認(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()
到此,我們的項目配置基本完成,這里特別需要注意的是在wsgi文件中的項目引入。
三、啟動或安裝apache
啟動管理員模式的cmd進入到Apache24的bin文件路徑下:
安裝apache為系統(tǒng)服務(wù):
httpd -k install
啟動apache:
httpd -k start
我發(fā)現(xiàn)有的電腦可以直接通過打開httpd.exe直接運行,而不需要將httpd安裝入系統(tǒng)服務(wù)。
其他可能用到的apache命令:
停止apache服務(wù):
httpd -k stop
重啟apache服務(wù):
httpd -k restart
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享flask如何結(jié)合apache內(nèi)容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來學(xué)習(xí)!