3.4、链接
任何具有多個路由的程序都需要可以連接不同頁面的鏈接,例如導(dǎo)航條。
在模板中直接編寫簡單路由的 URL 鏈接不難,但對于包含可變部分的動態(tài)路由,在模板中構(gòu)建正確的 URL 就很困難。而且,直接編寫 URL 會對代碼中定義的路由產(chǎn)生不必要的依賴關(guān)系。如果重新定義路由,模板中的鏈接可能會失效。
為了避免這些問題,Flask 提供了 url_for() 輔助函數(shù),它可以使用程序 URL 映射中保存的信息生成 URL。
url_for() 函數(shù)最簡單的用法是以視圖函數(shù)名(或者 app.add_url_route() 定義路由時使用的端點名)作為參數(shù),返回對應(yīng)的 URL。例如,在當(dāng)前版本的 hello.py 程序中調(diào)用 url_for('index') 得到的結(jié)果是 /。調(diào)用 url_for('index', _external=True) 返回的則是絕對地址,在這個示例中是 http://localhost:5000/。
?
?
注:生成連接程序內(nèi)不同路由的鏈接時,使用相對地址就足夠了。如果要生成在瀏覽器之外使用的鏈接,則必須使用絕對地址。
使用 url_for() 生成動態(tài)地址時,將動態(tài)部分作為關(guān)鍵字參數(shù)傳入。例如,url_for ('user', name='john', _external=True) 的返回結(jié)果是 http://localhost:5000/user/john
?
?
傳入 url_for() 的關(guān)鍵字參數(shù)不僅限于動態(tài)路由中的參數(shù)。函數(shù)能將任何額外參數(shù)添加到查詢字符串中。例如,url_for('index', page=2) 的返回結(jié)果是 /?page=2。
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/sanduzxcvbnm/p/6649510.html
總結(jié)
- 上一篇: AngularJS学习篇(十)
- 下一篇: 【HDU4734】F(x) 数位DP