Flask是一個(gè)基于Python語言的微型Web框架。之所以被稱為微型,是因?yàn)槠浜诵姆浅P?,但是該Web框架簡(jiǎn)約而不簡(jiǎn)單,具有很強(qiáng)的擴(kuò)展能力。本文介紹如何編寫和運(yùn)行第一個(gè)Flask Web應(yīng)用程序。
當(dāng)然,閱讀本文之前,需要讀者有一定的Python基礎(chǔ)。有時(shí)間的同學(xué)可以填寫以下的調(diào)查,讓我們了解閱讀本文的讀者Python掌握情況。
一 安裝Flask框架
要使用Flask框架,必須先安裝Flask。安裝主要方式有兩種。
1.在PyCharm中安裝Flask
(1)執(zhí)行File|Settings命令,如圖2.2所示。
圖2.2 選擇File|Settings命令
(2)在上一步操作基礎(chǔ)上,繼續(xù)執(zhí)行Project:untitled(untitled為工程名,要根據(jù)實(shí)際的工程名來選擇)|Project Interpreter,如圖2.3所示。
圖2.3 找到Project Interpreter
(3)單擊圖2.3中的“+”號(hào)按鈕后,彈出如圖2.4所示對(duì)話框,在輸入框中輸入Flask,然后回車。
圖2.4 執(zhí)行Flask的安裝
(4)安裝成功以后,如圖2.5所示。
圖2.5 成功安裝Flask框架
2.用pip方式安裝Flask
筆者的虛擬環(huán)境地址為J:\flask-venv\venv,在cmd下按以下步驟操作:
(1) cd j:(2) cd J:\flask-venv\venv\Scripts(3) activate上面3個(gè)命令的每個(gè)命令輸入完后都需要回車。執(zhí)行完這3個(gè)命令后,表示成功激活當(dāng)前虛擬環(huán)境。在(venv)J:\flask-venv\venv\Scripts>下輸入pip install Flask,即:
(venv)J:\flask-venv\venv\Scripts> pip install Flask然后回車,即可安裝Flask了。
注意: 后續(xù)章節(jié)用到的很多框架都可以通過這兩種方式來完成安裝,讀者可以根據(jù)自己的喜好來選擇安裝方式。
2.2.2 在Flask中輸出Hello World
所有的Flask程序都必須創(chuàng)建一個(gè)程序?qū)嵗?。Web服務(wù)器使用一種名為Web服務(wù)器網(wǎng)關(guān)接口(Web Server Gateway Interface,WSGI)的協(xié)議,把接收自客戶端的所有請(qǐng)求都轉(zhuǎn)給這個(gè)對(duì)象進(jìn)行處理。程序?qū)嵗荈lask類的對(duì)象,經(jīng)常使用下述代碼創(chuàng)建:
from flask import Flaskapp = Flask(__name__)from flask import Flask這行代碼表示從Flask框架中引入Flask對(duì)象。app=Flask(__name__)這行代碼表示傳入__name__這個(gè)變量值來初始化Flask對(duì)象,F(xiàn)lask用這個(gè)參數(shù)確定程序的根目錄,__name__代表的是這個(gè)模塊本身的名稱。
使用route()裝飾器注明通過什么樣的URL可以訪問函數(shù),同時(shí)在函數(shù)中返回要顯示在瀏覽器中的信息。代碼如下:
@app.route('/')def index():return 'Hello World!'@app.route('/')這行代碼指定了URL與Python函數(shù)的映射關(guān)系,我們把處理URL和函數(shù)之間關(guān)系的程序定義為路由,把被裝飾的函數(shù)index()注冊(cè)為路由,此處注冊(cè)給index()函數(shù)的路由為根目錄。
這里的index()函數(shù)叫做視圖函數(shù),視圖函數(shù)必須要有返回值,返回價(jià)值為字符串或簡(jiǎn)單的HTML頁面等內(nèi)容。
系統(tǒng)初始化了,路由和視圖函數(shù)有了,F(xiàn)lask程序如何運(yùn)行呢?Flask程序的運(yùn)行需要服務(wù)器環(huán)境,我們可以通過run方法來啟動(dòng)Flask自身集成的服務(wù)器。代碼如下:
if __name__=='__main__': app.run(debug=True)如果__name__=='__main__',就要啟用Web服務(wù)來運(yùn)行上面的程序,服務(wù)器一旦開啟,就會(huì)進(jìn)入輪詢狀態(tài),等待并處理請(qǐng)求。在app.run()中可以傳入一些參數(shù),比如debug,app.run(debug=Ture),表示設(shè)置當(dāng)前項(xiàng)目為debug模式,也就是調(diào)試模式。如果設(shè)置了調(diào)試模式,遇到程序有錯(cuò)誤,會(huì)在控制臺(tái)輸出具體的錯(cuò)誤信息,否則只會(huì)籠統(tǒng)地報(bào)告“應(yīng)用服務(wù)器錯(cuò)誤”的信息。另一方面,如果設(shè)置為調(diào)試模式,期間又修改了程序代碼,系統(tǒng)會(huì)自動(dòng)重新將修改的代碼提交給Web服務(wù)器,你只需要確保瀏覽器沒有緩存,便可以得到最新修改的代碼結(jié)果。
app.run()還可以傳入端口等信息,比如app.run(host='0.0.0.0',port=8080),host='0.0.0.0'參數(shù)設(shè)置啟用本機(jī)的IP地址可以訪問,端口地址指定為8080,如果不指定,則為5000。
接下來,在PyCharm中實(shí)現(xiàn)上述項(xiàng)目。
在PyCharm中新建一個(gè)名稱為2-1的工程(新建工程注意使用已經(jīng)存在的“虛擬環(huán)境”),如圖2.6所示。
圖2.6 選擇使用已有“虛擬環(huán)境”
app.py的內(nèi)容見例2-1。
例2-1 Flask實(shí)例:app.py
01 # 從Flask框架中導(dǎo)入Flask類02 from flask import Flask03 # 傳入__name__初始化一個(gè)Flask實(shí)例04 app = Flask(__name__)05 #這個(gè)路由將根URL映射到了hello_world函數(shù)上06 @app.route('/')07 def hello_world(): #定義視圖函數(shù)08 return 'Hello World!' #返回響應(yīng)對(duì)象09 if __name__ == '__main__':10 #指定默認(rèn)主機(jī)為是127.0.0.1,port為888811 app.run(debug=True,host='0.0.0.0', port=8888)運(yùn)行程序,結(jié)果如圖2.7所示。
圖2.7 第一個(gè)程序Hello World
如果啟用的端口不是5000端口,這里port=8888在筆者的PyCharm 2018.2.1版本中是不會(huì)生效的,訪問地址仍然為 http://127.0.0.1:5000/ ,為使新端口地址生效,還需要做進(jìn)一步設(shè)置。
(1)執(zhí)行Run|Edit Configurations命令,如圖2.8所示。
圖2.8 執(zhí)行Run|Edit
(2)彈出如圖2.9所示對(duì)話框。
圖2.9 運(yùn)行端口設(shè)置
(3)在Additional options輸入框中輸入“--host=192.168.31.118--port=8888”(192.168.31.118為筆者計(jì)算機(jī)的IPv4地址),當(dāng)然這里你也可以輸入“--host=127.0.0.1--port=8888”。接下來,在瀏覽器地址欄可以輸入 http://192.168.31.118:8888/ 訪問網(wǎng)頁,192.168.31.118一個(gè)網(wǎng)段內(nèi)的局域網(wǎng)計(jì)算機(jī)也可以通過 http://192.168.31.118:8888/ 訪問到此網(wǎng)頁的內(nèi)容。
注: PyCharm在2018.2.1之前的版本是不需要上述兩個(gè)步驟設(shè)置的。
掃描二維碼推送至手機(jī)訪問。
版權(quán)聲明:本文由信途科技轉(zhuǎn)載于網(wǎng)絡(luò),如有侵權(quán)聯(lián)系站長(zhǎng)刪除。
轉(zhuǎn)載請(qǐng)注明出處http://macbookprostickers.com/xintu/12155.html