也許你聽說過flask框架。也許你也使用過,也使用的非常好。但是當你在瀏覽器上輸入一串路由位址,跳轉至你所寫的頁面,在flask中是怎樣實現的,你是否感到好奇? 如果你不清楚,那就往下看看吧 ~
flask demo**
from flask import
flask'/
')defhello_world():
return
'hello world!'"
/home")
defhome():
return
"這個是主頁""
/login")
deflogin():
return
"這個是登入"if
__name__ == '
__main__':
當你在瀏覽器位址上輸入路徑,進入不同檢視函式。
1.輸入路徑為:"/"
2.輸入路徑為:"/home"
3.輸入路徑為:"/login"
是不是很神奇~ 接下來讓我們看看他是如何實現的吧!
flask原理
self.add_url_rule(rule,endpoint, f,**potions) 接收到路徑資訊、函式資訊封裝打包放進全域性的 self.url_map.add(rule)
這個時候的全域性的self.url_map裡面的資訊為
當請求url進來會到 self.url_map匹配然後執行相應的方法函式,返回相應的方法結果。知道是這樣的流程 我們就可以得到下面的結果
簡單實現(廢話不多說,直接上碼!)
在這裡我們用模擬瀏覽器輸入方式來完成,當我們輸入"/",它會去找對應路徑下 index() 執行 ; 輸入"/home",它會去找對應路徑下 home() 執行;輸入"/login", 它會去找對應路徑下 login() 執行,怎樣是不是很神奇,是不是很像flask。其實flask就是這樣的思路實現的。
效果:
解析實現(3步)
a.當程式啟動時, 先執行了route()這個裝飾器,拿到了所有路徑、對應函式並將它們存在map這個字典中,以路徑為key, 對應函式名為value。(注:在flask是用全域性 self.url_map 來存這些路由方法資訊的哦,我們這裡簡單實現用的是字典,所以還是有些區別的~)
b.當你輸入路徑或者在瀏覽器上輸入路徑,會以key的形式到map字典中匹配,取出value(函式名)。
c. 得到value通過getattr()得到函式位址, 然後用內建__call__()方法,執行這個函式
結束語
Python Flask框架學習
1.flask系列教程 1 認識web 2.flask系列教程 2 flask簡介 3.flask系列教程 3 專案配置 4.flask系列教程 4 url與檢視 5.flask系列教程 5 模板簡介 6.flask系列教程 7 jinja2模板概述 7.flask系列教程 8 jinja2過濾器 ...
python flask框架詳解
2.簡單上手 乙個最小的 flask 應用如下 執行結果 environment production warning this is a development server.do not use it in a production deployment.use a production wsg...
Python Flask框架總結
flask是乙個使用 python 編寫的輕量級 web 應用框架,它比較適合一些分層比較少,邏輯不怎麼複雜的web專案。werkzeug 路由模組,實現路由 除錯和web伺服器閘道器介面 jinja2 模板引擎 匯入flask from flask import flask 建立flask的應用程...