flask學習筆記-視圖函數路由規(guī)則
視圖函數路由規(guī)則說明
通過url_map可以查看整個flask中的路由信息
輸出:
輸出是map映射對象,是個列表包含兩個路由規(guī)則,第一個是url路徑+請求,另一個是
static是處理靜態(tài)文件的,訪問方式不指明即默認情況下為get。
1) 通過methods限定訪問方式
如果不加methods默認為get訪問方式, 如果只定義 post訪問方式,則運行下面程序會報錯:
打開網址:

會出現請求方式不允許的錯誤。狀態(tài)碼405。想要允許訪問,加上GET即可
2)同一路由裝飾多個視圖函數:
執(zhí)行結果:

可以通過設置訪問方式,訪問到hello 2.
3)同一視圖函數用多個路由裝飾器
執(zhí)行結果:


可以看到兩個地址都訪問同一個視圖函數
4)url_for反解析 ?
使用url_for的函數,通過視圖函數的名字找到視圖對應的url路徑
優(yōu)點:將來如果修改了URL, 但沒有修改該URL對應的函數名,就不用到處支替換URL了.
此時,login訪問路徑就跳轉到index。
5)轉換器 ?尖括號語法
flask作為輕型WEB框架,在web開發(fā)中,可能會出現限制用戶訪問的規(guī)則的場景,那么這個時候,就需要過濾指定用戶,所以可以使用轉換器實現。
轉換器的本質是:通過正則表達式匹配路由地址
轉換器有下面幾種:
int ? 接受整數
float 接受浮點數
path 和默認的相似,但也接受斜線

注意:
@app.route("/goods_detail/<goods_id>") ? ?# 不加轉換器類型默認是字符串規(guī)則,匹配除了/的字符
1、自己實現特殊功能的萬能轉換器: ?可以接收正則規(guī)則
運行效果:

轉換器,是對url中的內容進行匹配和轉換!
換器中的內容包括三個:路由匹配的正則regex屬性,to_python方法,to_url方法。 regex是對url進行路由匹配,to_python和to_url兩個方法是對url參數進行處理的。
?轉換器的匹配原理是用戶輸入請求后,將路徑與轉換器的self.regex進行匹配。匹配成功后,將路徑通過to_python傳遞給視圖函數,返回客戶請求。這是常規(guī)的匹配路徑流程。當客戶路徑是通過重定向的,則首先通過url_for函數形成匹配的新路徑,此匹配的新路徑的形成流程是:url_for會調用to_url 形成路徑,然后與視圖函數匹配。成功后,將路徑通過to_python函數將路徑傳遞給視圖函數,返回用戶請求。
1、regex:匹配url參數的正則表達式
可以通過__init__方法初始化
下面這兩個方法都是對url參數進行處理,一個是在調用視圖函數之前執(zhí)行,一個是在路由之前執(zhí)行:
2、to_python(self, value)方法
當匹配到參數后將自動調用to_python方法將參數進行處理后,在調用視圖函數將參數傳回給視圖函數
3、to_url(self, url)方法
使用url_for()方法的時候,先調用to_url對傳入的url參數進行處理,處理完成后再進行路由