Python Flask框架路由簡單實現

2022-05-07 06:27:09 字數 1829 閱讀 5388

也許你聽說過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的應用程...