Pyhon Flask框架:第一個(gè)Flask程序
Flask框架介紹
Flask誕生于2010年,是Armin ronacher用Python語(yǔ)言基于Werkzeug工具箱編寫(xiě)的輕量級(jí)Web開(kāi)發(fā)框架,其本身相當(dāng)于一個(gè)內(nèi)核,其他幾乎所有的功能都要用到擴(kuò)展,都需要第三方的擴(kuò)展來(lái)實(shí)現(xiàn)。
其WSGI工具箱采用Werkzeug(路由模塊),模板引擎則使用Jinja2,這兩個(gè)也是Flask框架的核心,它們分別負(fù)責(zé)業(yè)務(wù)處理和安全方面的功能。其中:
- Werkzeug庫(kù):支持URL路由請(qǐng)求集成,一次可以響應(yīng)多個(gè)用戶的訪問(wèn)請(qǐng)求;支持Cookie和會(huì)話管理,通過(guò)身份緩存數(shù)據(jù)建立長(zhǎng)久連接關(guān)系,并提高用戶訪問(wèn)速度;支持交互式Javascript調(diào)試,提高用戶體驗(yàn);可以處理HTTP基本事務(wù),快速響應(yīng)客戶端推送過(guò)來(lái)的訪問(wèn)請(qǐng)求。
- Jinja2庫(kù):支持自動(dòng)HTML轉(zhuǎn)移功能,能夠很好控制外部黑客的腳本攻擊。
Flask框架的作用
那么Flask框架的作用是什么呢?
Flask是一個(gè)Web框架,它的作用主要是為了開(kāi)發(fā)Web應(yīng)用程序,Web大家應(yīng)該都了解,就是網(wǎng)頁(yè),所以我們學(xué)完了Flask就可以自己寫(xiě)個(gè)小網(wǎng)站了。
除了Flask框架,Python還有很多web框架,例如Django,Tormado框架等,其中最出名的框架是Django,最靈活的框架算是Flask。
Flask框架常用擴(kuò)展包
剛才說(shuō)了,F(xiàn)lask本身相當(dāng)于一個(gè)內(nèi)核,其他幾乎所有的功能都要用到擴(kuò)展,都需要第三方的擴(kuò)展來(lái)實(shí)現(xiàn)。
那么它常有的擴(kuò)展包有哪些呢?
- Flask-SQLalchemy:操作數(shù)據(jù)庫(kù);
- Flask-script:插入腳本;
- Flask-migrate:管理遷移數(shù)據(jù)庫(kù);
- Flask-Session:Session存儲(chǔ)方式指定;
- Flask-WTF:表單;
- Flask-Mail:郵件;
- Flask-Bable:提供國(guó)際化和本地化支持,翻譯;
- Flask-Login:認(rèn)證用戶狀態(tài);
- Flask-OpenID:認(rèn)證;
- Flask-RESTful:開(kāi)發(fā)REST API的工具;
- Flask-Bootstrap:集成前端Twitter Bootstrap框架;
- Flask-Moment:本地化日期和時(shí)間;
- Flask-Admin:簡(jiǎn)單而可擴(kuò)展的管理接口的框架。
創(chuàng)建Flask項(xiàng)目
簡(jiǎn)單地了解了Flask框架是什么,其作用是什么,現(xiàn)在我們開(kāi)始創(chuàng)建一個(gè)Flask框架項(xiàng)目,這里我們推薦用PyCharm,不要問(wèn)為什么,問(wèn)就是方便、好用。
首先打開(kāi)PyCharm,創(chuàng)建我們第一個(gè)Flask項(xiàng)目,如下圖所示:

一般情況下,我們只需要修改一下項(xiàng)目名和選擇Python編譯器即可點(diǎn)擊Create,點(diǎn)擊后,我們?cè)冱c(diǎn)擊This Window,這樣我們就成功創(chuàng)建了一個(gè)Flask框架項(xiàng)目,如下圖所示:

其中:
- static是靜態(tài)文件夾,里面可以放js,css等文件;
- templates是模板文件夾;
- venv是虛擬環(huán)境文件夾,里面放著我們pip安裝的庫(kù)和一些模塊、包;
- app.py是啟動(dòng)程序。
創(chuàng)建完項(xiàng)目后,我們查看當(dāng)前項(xiàng)目已經(jīng)安裝了哪些包,執(zhí)行代碼如下:
pip list
執(zhí)行結(jié)果如下圖所示:

每個(gè)人執(zhí)行的結(jié)果可能不一樣,可能會(huì)少了或多了一兩個(gè)包,但沒(méi)關(guān)系,當(dāng)我們需要的時(shí)候,再去安裝即可。
app.py介紹
接下來(lái)我們來(lái)介紹一下app.py,其文件內(nèi)容如下:
from flask import Flask
#創(chuàng)建Flask的實(shí)例對(duì)象
app = Flask(__name__)
#裝飾器
@app.route('/')
def hello_world():
#視圖函數(shù)
return 'Hello World!'
if __name__ == '__main__':
app.run()
其中:
1.導(dǎo)入Flask模塊,該類的實(shí)例將會(huì)成為我們的WSGI應(yīng)用;
2.創(chuàng)建一個(gè)該類的實(shí)例,該實(shí)例可以傳遞以下參數(shù):
1、__name__是一個(gè)適用于大多數(shù)情況的快捷方式,有了這個(gè)參數(shù), Flask 才能知道在哪里可以找到模板和靜態(tài)文件等東西;
2、static_url_path: 訪問(wèn)靜態(tài)資源的url前綴
3、static_folder: 默認(rèn)‘static'
4、template_folder: 默認(rèn)‘templates'
3.使用route()裝飾器來(lái)告訴Flask觸發(fā)函數(shù)的URL ;
4.視圖函數(shù)返回需要在用戶瀏覽器中顯示的信息;
5.app.run()啟動(dòng)一個(gè)web服務(wù)器來(lái)運(yùn)行我們的程序。
運(yùn)行Flask程序
我們先什么都不做,運(yùn)行一下代碼,試試它會(huì)出現(xiàn)什么。
有兩種運(yùn)行方法,一種是直接運(yùn)行,另一種是在Terminal里面運(yùn)行。
直接運(yùn)行,運(yùn)行結(jié)果如下:
FLASK_APP = app.py FLASK_ENV = development FLASK_DEBUG = 0 In folder C:/Users/LIN/Desktop/Flask開(kāi)發(fā) C:\Users\LIN\Desktop\Flask開(kāi)發(fā)\venv\Scripts\python.exe -m flask run * Serving Flask app 'app.py' (lazy loading) * Environment: development * Debug mode: off * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
在Terminal里面運(yùn)行,運(yùn)行結(jié)果如下圖所示:

這兩種運(yùn)行方式主要是Environment結(jié)果不同,但也差不多,因?yàn)樵赥erminal里面運(yùn)行中,會(huì)有個(gè)WARNING警告,告訴我們這是一個(gè)開(kāi)發(fā)服務(wù)器,不要在生產(chǎn)部署中使用它。
我們點(diǎn)擊http://127.0.0.1:5000/就會(huì)彈出一個(gè)瀏覽器,如下圖所示:

那么我們就要思考,為什么點(diǎn)擊這個(gè)網(wǎng)址就會(huì)彈出Hello World!,而不是彈出其他呢。
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
解決Keyerror ''''acc'''' KeyError: ''''val_acc''''問(wèn)題
這篇文章主要介紹了解決Keyerror 'acc' KeyError: 'val_acc'問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06
利用?Python?開(kāi)發(fā)一個(gè)?Python?解釋器
這篇文章主要介紹了利用?Python?開(kāi)發(fā)一個(gè)?Python?解釋器,在本文中,我們將設(shè)計(jì)一個(gè)可以執(zhí)行算術(shù)運(yùn)算的解釋器。下面我們大家一起來(lái)看看吧</P><P>2022-01-01
詳解python3安裝pillow后報(bào)錯(cuò)沒(méi)有pillow模塊以及沒(méi)有PIL模塊問(wèn)題解決
這篇文章主要介紹了python3安裝pillow后報(bào)錯(cuò)沒(méi)有pillow模塊以及沒(méi)有PIL模塊問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
Python把png轉(zhuǎn)成jpg的項(xiàng)目實(shí)踐
本文主要介紹了Python把png轉(zhuǎn)成jpg的項(xiàng)目實(shí)踐,可以使用PIL庫(kù)來(lái)將PNG圖片轉(zhuǎn)換為JPG格式,具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02
Python實(shí)現(xiàn)一個(gè)數(shù)組除以一個(gè)數(shù)的例子
今天小編就為大家分享一篇Python實(shí)現(xiàn)一個(gè)數(shù)組除以一個(gè)數(shù)的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07
用python的seaborn畫(huà)數(shù)值箱型圖
大家好,本篇文章主要講的是用python的seaborn畫(huà)數(shù)值箱型圖,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下2022-01-01
使用python+Pyqt5實(shí)現(xiàn)串口調(diào)試助手
這篇文章主要介紹了使用python+Pyqt5實(shí)現(xiàn)串口調(diào)試助手,串口通訊程序首先要對(duì)串口進(jìn)行設(shè)置,如波特率、數(shù)據(jù)位、停止位、校驗(yàn)位等,需要的朋友可以參考下2022-04-04
Python reques接口測(cè)試框架實(shí)現(xiàn)代碼
這篇文章主要介紹了Python reques接口測(cè)試框架實(shí)現(xiàn)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07

