Python Flask框架擴(kuò)展操作示例
本文實(shí)例講述了Python Flask框架擴(kuò)展操作。分享給大家供大家參考,具體如下:
請(qǐng)求上下文(request context)
Flask有兩大核心:Werkzeug和Jinja2。Werkzeug實(shí)現(xiàn)路由、調(diào)試和Web服務(wù)器網(wǎng)關(guān)接口。Jinja2實(shí)現(xiàn)了模板。
request和response都屬于請(qǐng)求上下文對(duì)象。
當(dāng)調(diào)用app = Flask(name)的時(shí)候,創(chuàng)建了程序應(yīng)用對(duì)象app;
request 在每次http請(qǐng)求發(fā)生時(shí),WSGI server調(diào)用Flask.call();然后在Flask內(nèi)部創(chuàng)建的request對(duì)象;
app的生命周期大于request,一個(gè)app存活期間,可能發(fā)生多次http請(qǐng)求,所以就會(huì)有多個(gè)request。
最終傳入視圖函數(shù),通過return、redirect或render_template生成response對(duì)象,返回給客戶端。
Flask裝飾器路由的實(shí)現(xiàn):
Flask框架是以Werkzeug為基礎(chǔ)實(shí)現(xiàn)的。
Werkzeug是一個(gè)遵循WSGI協(xié)議的python函數(shù)庫(kù)。其內(nèi)部實(shí)現(xiàn)了很多Web框架底層的東西,比如request和response對(duì)象;與WSGI規(guī)范的兼容;支持Unicode;支持基本的會(huì)話管理和簽名Cookie;集成URL請(qǐng)求路由等。
Werkzeug庫(kù)的routing模塊負(fù)責(zé)實(shí)現(xiàn)URL解析。不同的URL對(duì)應(yīng)不同的視圖函數(shù),routing模塊會(huì)對(duì)請(qǐng)求信息的URL進(jìn)行解析,匹配到URL對(duì)應(yīng)的視圖函數(shù),以此生成一個(gè)響應(yīng)信息。
routing模塊內(nèi)部有Rule類(用來構(gòu)造不同的URL模式的對(duì)象)、Map類(存儲(chǔ)所有的URL規(guī)則)、MapAdapter類(負(fù)責(zé)具體URL匹配的工作);
Flask-Script擴(kuò)展命令行
通過使用Flask-Script擴(kuò)展,我們可以在Flask服務(wù)器啟動(dòng)的時(shí)候,通過命令行的方式傳入?yún)?shù)。而不僅僅通過app.run()方法中傳參,比如我們可以通過python hello.py runserver –host ip地址,告訴服務(wù)器在哪個(gè)網(wǎng)絡(luò)接口監(jiān)聽來自客戶端的連接。默認(rèn)情況下,服務(wù)器只監(jiān)聽來自服務(wù)器所在計(jì)算機(jī)發(fā)起的連接,即localhost連接。
我們可以通過python hello.py runserver –help來查看參數(shù)。
from flask import Flask
from flask_script import Manager
app = Flask(__name__)
manager = Manager(app)
@app.route('/')
def index():
return '床前明月光'
if __name__ == "__main__":
manager.run()
希望本文所述對(duì)大家基于flask框架的Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
淺談插入排序算法在Python程序中的實(shí)現(xiàn)及簡(jiǎn)單改進(jìn)
這篇文章主要介紹了插入排序算法在Python程序中的實(shí)現(xiàn)及簡(jiǎn)單改進(jìn),插入排序算法的最差時(shí)間復(fù)雜度為O(n^2),最優(yōu)時(shí)間復(fù)雜度為O(n),存在一定的優(yōu)化空間,需要的朋友可以參考下2016-05-05
Python實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)線性鏈表(單鏈表)算法示例
這篇文章主要介紹了Python實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)線性鏈表(單鏈表)算法,結(jié)合實(shí)例形式分析了Python單鏈表的定義、節(jié)點(diǎn)插入、刪除、打印等相關(guān)操作技巧,需要的朋友可以參考下2019-05-05
使用selenium和pyquery爬取京東商品列表過程解析
這篇文章主要介紹了使用selenium和pyquery爬取京東商品列表過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
淺談pandas關(guān)于查看庫(kù)或依賴庫(kù)版本的API原理
本文主要介紹了淺談pandas關(guān)于查看庫(kù)或依賴庫(kù)版本的API原理,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
python?selenium.webdriver?爬取政策文件的實(shí)現(xiàn)
本文主要介紹了python?selenium.webdriver?爬取政策文件的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
python實(shí)現(xiàn)統(tǒng)計(jì)代碼行數(shù)的小工具
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)統(tǒng)計(jì)代碼行數(shù)的小工具,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09

