淺談Python flask框架
?前言:
Python
面向?qū)ο蟮母呒?jí)編程語(yǔ)言,以其語(yǔ)法簡(jiǎn)單、免費(fèi)開(kāi)源、免編譯擴(kuò)展性高,同時(shí)也可以嵌入到C/C++程序和豐富的第三方庫(kù),Python運(yùn)用到大數(shù)據(jù)分析、人工智能、web后端等應(yīng)用場(chǎng)景上。
Python 目前主要流行的web框架:flask
、Django
、Tornado
那么框架與庫(kù)的區(qū)別?
框架(framework
)跟庫(kù)的功能類似,但是框架在某一領(lǐng)域上功能更加全面。使用框架,會(huì)減少開(kāi)發(fā)者重復(fù)造輪子,直接調(diào)用其類或者函數(shù)就可以實(shí)現(xiàn)需求的功能。
那么,我們本期來(lái)學(xué)習(xí)Python提供的 web 框架之一-flask框架相關(guān)方法的學(xué)習(xí),Let's go~
1. flask 框架概述
flask
框架是一款基于 WSGI 的輕量級(jí)的web框架。flask
猶如耳熟能詳?shù)摹奥槿鸽m小,五臟俱全”,因此flask具有簡(jiǎn)單可拓展的特點(diǎn)。
1.1flask 框架優(yōu)勢(shì)
- 基于WSGI應(yīng)用程序,必須使用顯式實(shí)例化
- 使用
Werkzeug
路由系統(tǒng)進(jìn)行自動(dòng)排序路由 - 使用
Jinja2
模板引擎,快速方便使用模板 - 使用線程局部變量,實(shí)現(xiàn)快速訪問(wèn)
weby
應(yīng)用程序 - 支持異步等待和
ASCI
(async-first) - 銜接單元測(cè)試,開(kāi)發(fā)人員快速進(jìn)行測(cè)試檢查
- 自帶開(kāi)發(fā)服務(wù)器,無(wú)需借助其他第三方網(wǎng)絡(luò)服務(wù)
1.2flask 框架獲取
使用pip進(jìn)行下載flask
pip install flask
?flask 包下載之后,會(huì)自動(dòng)下載依賴庫(kù)
- Werkzeug 庫(kù):實(shí)現(xiàn)WSGI,前端與服務(wù)端的Python接口
- Jinjia 庫(kù):模板語(yǔ)言,顯示web頁(yè)面
- MarkupSafe 庫(kù):附帶Jinjia,用于轉(zhuǎn)義渲染模板不受信任的輸入
- itsDangerous:保護(hù)flask會(huì)話的cookie
- Click庫(kù):用于編寫命令行框架
?flask 可選的依賴庫(kù),按實(shí)際需要進(jìn)行下
- Blinker 庫(kù):提供對(duì)Singals的支持
- Python-dotenv 庫(kù):運(yùn)行命令時(shí)啟動(dòng)
dotenv
的環(huán)境變量來(lái)支持flask - Watchdog 為flask服務(wù)器提供快速的加載器
1.3flask 框架使用
在代碼中,使用from...import 導(dǎo)入flask包
from flask import flask
長(zhǎng)按 Ctrl,我們可以查看Flask源代碼介紹
2. flask demo步驟
在flask web 框架中,我們來(lái)看看要搭建一個(gè)DEMO的網(wǎng)站需要做哪些步驟:
初始化:導(dǎo)入Flask庫(kù),定義Flask實(shí)例化對(duì)象
- Flask實(shí)例化時(shí),需要傳入
__name__
:目的是接收包或者模塊的名字作為參數(shù) - 讓
flask.helpers.get_root_path
以便獲得靜態(tài)文件和模板文件的目錄
from flask import Flask APP = Flask(__name__)
定義一個(gè)應(yīng)用方法,并且route裝飾器裝飾
- 調(diào)用
route()
方法裝飾創(chuàng)建的應(yīng)用方法:目的是告訴flask怎么訪問(wèn)該函數(shù)
@APP.route("/") def hello(): return ("<h1>welcome juejin</h1>")
在main中,flask實(shí)例化對(duì)象調(diào)用run()方法,進(jìn)行運(yùn)行
- 如果在調(diào)試階段,我們需要設(shè)置
debug=True
if __name__ == "__main__": APP.run(debug=True)
后臺(tái)運(yùn)行日志鏈接
我們?cè)L問(wèn)日志中生成的鏈,可以在網(wǎng)頁(yè)上看到解析的文字
3. flask 基礎(chǔ)功能
flask
上述實(shí)現(xiàn)的簡(jiǎn)易web程序,主要使用到啦flask模塊路由功能
3.1路由功能
route()是裝飾器,將URL和函數(shù)綁定
rule
:綁定訪問(wèn)該函數(shù)的url規(guī)則option
:要轉(zhuǎn)發(fā)給Rule對(duì)象的參數(shù)列表
@app.route(url,optiion)
run()
是服務(wù)器上運(yùn)行應(yīng)用程序host
:監(jiān)聽(tīng)的主機(jī)名port
:主機(jī)端口號(hào)debug
:提供調(diào)試信息options
:要轉(zhuǎn)發(fā)給底層Werkzeug
服務(wù)器
3.2模版提供
flask
框架是基于Jinja2
模板引擎實(shí)現(xiàn)的
- 在項(xiàng)目中創(chuàng)建一個(gè)子目錄
templates
,然后在其目錄下創(chuàng)建demo.html
- 在flask文件中,應(yīng)用方法中需要調(diào)用
render_template('demo.html', name=name)
4、總結(jié)
本期,我們對(duì)flask
微web
框架優(yōu)勢(shì)特點(diǎn)、demo web應(yīng)用程序程序步驟以及對(duì)flask模塊中路由和模版兩個(gè)功能進(jìn)行基本了解。
到此這篇關(guān)于淺談Python flask框架的文章就介紹到這了,更多相關(guān)Python flask框架內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python 根據(jù)pid殺死相應(yīng)進(jìn)程的方法
下面小編就為大家?guī)?lái)一篇python 根據(jù)pid殺死相應(yīng)進(jìn)程的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01基于Python實(shí)現(xiàn)ComicReaper漫畫自動(dòng)爬取腳本過(guò)程解析
這篇文章主要介紹了基于Python實(shí)現(xiàn)ComicReaper漫畫自動(dòng)爬取腳本過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11Python自動(dòng)化運(yùn)維之IP地址處理模塊詳解
IPy該模塊可以方便的處理IPv4和IPv6地址,下面這篇文章主要給大家介紹了關(guān)于Python自動(dòng)化運(yùn)維之IP地址處理模塊的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友下面來(lái)一起看看吧。2017-12-12靈活運(yùn)用Python 枚舉類來(lái)實(shí)現(xiàn)設(shè)計(jì)狀態(tài)碼信息
在python中枚舉是一種類(Enum,IntEnum),存放在enum模塊中。枚舉類型可以給一組標(biāo)簽賦予一組特定的值,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09python繪制散點(diǎn)圖并標(biāo)記序號(hào)的方法
今天小編就為大家分享一篇python繪制散點(diǎn)圖并標(biāo)記序號(hào)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12酷! 程序員用Python帶你玩轉(zhuǎn)沖頂大會(huì)
程序員用Python玩轉(zhuǎn)王思聰?shù)摹稕_頂大會(huì)》,感興趣的小伙伴們可以參考一下2018-01-01Tensorflow中tf.ConfigProto()的用法詳解
今天小編就為大家分享一篇Tensorflow中tf.ConfigProto()的用法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02Python解析網(wǎng)頁(yè)源代碼中的115網(wǎng)盤鏈接實(shí)例
這篇文章主要介紹了Python解析網(wǎng)頁(yè)源代碼中的115網(wǎng)盤鏈接實(shí)例,主要采用了正則表達(dá)式re模塊來(lái)實(shí)現(xiàn)該功能,需要的朋友可以參考下2014-09-09Django 項(xiàng)目重命名的實(shí)現(xiàn)步驟解析
這篇文章主要介紹了Django 項(xiàng)目重命名的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08