您好,登錄后才能下訂單哦!
本文實例講述了Python Flask框架擴展操作。分享給大家供大家參考,具體如下:
請求上下文(request context)
Flask有兩大核心:Werkzeug和Jinja2。Werkzeug實現路由、調試和Web服務器網關接口。Jinja2實現了模板。
request和response都屬于請求上下文對象。
當調用app = Flask(name)的時候,創建了程序應用對象app;
request 在每次http請求發生時,WSGI server調用Flask.call();然后在Flask內部創建的request對象;
app的生命周期大于request,一個app存活期間,可能發生多次http請求,所以就會有多個request。
最終傳入視圖函數,通過return、redirect或render_template生成response對象,返回給客戶端。
Flask裝飾器路由的實現:
Flask框架是以Werkzeug為基礎實現的。
Werkzeug是一個遵循WSGI協議的python函數庫。其內部實現了很多Web框架底層的東西,比如request和response對象;與WSGI規范的兼容;支持Unicode;支持基本的會話管理和簽名Cookie;集成URL請求路由等。
Werkzeug庫的routing模塊負責實現URL解析。不同的URL對應不同的視圖函數,routing模塊會對請求信息的URL進行解析,匹配到URL對應的視圖函數,以此生成一個響應信息。
routing模塊內部有Rule類(用來構造不同的URL模式的對象)、Map類(存儲所有的URL規則)、MapAdapter類(負責具體URL匹配的工作);
Flask-Script擴展命令行
通過使用Flask-Script擴展,我們可以在Flask服務器啟動的時候,通過命令行的方式傳入參數。而不僅僅通過app.run()
方法中傳參,比如我們可以通過python hello.py runserver –host ip地址,告訴服務器在哪個網絡接口監聽來自客戶端的連接。默認情況下,服務器只監聽來自服務器所在計算機發起的連接,即localhost連接。
我們可以通過python hello.py runserver –help來查看參數。
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()
希望本文所述對大家基于flask框架的Python程序設計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。