從今天起開始記錄一些flask的學習筆記。
add_url_rule()這個方法的作用是將url和對應的視圖函數名聯系起來,建立映射關系,這以前都是通過route裝飾器實現的。比如:
@app.route('/',endpoint='hehe') 這是個有參的裝飾器,實現起來就需要在裝飾器外面再包一層,里面形成閉包,查看route的源碼:
@app.route('/',endpoint='hehe') 就等價於:decorator('index')
在裝飾器里面,把傳入的關鍵字參數endpoint取出來,沒有就用默認值None,然后就都傳到add_url_rule()方法里去了。
其中endpoint結束點指定后,url_for里面傳入的就不再是視圖函數名了,而是指定的endpoint。通過請求上下文函數可以
輸出一下url_for的結果:
在類視圖里也要用到add_url_rule()來建立映射關系。
通過as.view方法實現view_func函數的傳入。