1. 程式人生 > >Flask從入門到精通之鏈接的使用

Flask從入門到精通之鏈接的使用

相對 入門到 for 模板 程序 瀏覽器 函數 直接 div

  在Web開發中,任何具有多個路由的程序都需要可以連接不同頁面的鏈接,例如導航條。

  在模板中直接編寫簡單路由的URL 鏈接不難,但對於包含可變部分的動態路由,在模板中構建正確的URL 就很困難。而且,直接編寫URL 會對代碼中定義的路由產生不必要的依賴關系。如果重新定義路由,模板中的鏈接可能會失效。

  為了避免這些問題,Flask 提供了url_for() 輔助函數,它可以使用程序URL 映射中保存的信息生成URL。

  url_for() 函數最簡單的用法是以視圖函數名(或者app.add_url_route() 定義路由時使用的端點名)作為參數,返回對應的URL。例如,在上幾節中的實例hello.py 程序中調用url_for(‘index‘) 得到的結果是/。調用url_for(‘index‘, _external=True) 返回的則是絕對地址,在這個示例中是http://localhost:5000/。

  :生成連接程序內不同路由的鏈接時,使用相對地址就足夠了。如果要生成在瀏覽器之外使用的鏈接,則必須使用絕對地址,例如在電子郵件中發送的鏈接。

  使用url_for() 生成動態地址時, 將動態部分作為關鍵字參數傳入。例如,url_for(‘user‘, name=‘john‘, _external=True) 的返回結果是http://localhost:5000/user/john。

  傳入url_for() 的關鍵字參數不僅限於動態路由中的參數。函數能將任何額外參數添加到查詢字符串中。例如,url_for(‘index‘, page=2) 的返回結果是/?page=2。

Flask從入門到精通之鏈接的使用