欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python Flask框架擴(kuò)展操作示例

 更新時(shí)間:2019年05月03日 10:28:03   作者:xuezhangjun  
這篇文章主要介紹了Python Flask框架擴(kuò)展操作,結(jié)合實(shí)例形式分析了Python Flask-Script擴(kuò)展命令行操作實(shí)現(xiàn)方法,需要的朋友可以參考下

本文實(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)文章

最新評(píng)論