3.4 链接
鏈接
任何具有多個路由的應(yīng)用都需要可以連接不同頁面的鏈接,例如導(dǎo)航欄。
在模板中直接編寫簡單路由的 URL 鏈接不難,但對于包含可變部分的動態(tài)路由,在模板 中構(gòu)建正確的 URL 就很困難了。而且,直接編寫 URL 會對代碼中定義的路由產(chǎn)生不必要 的依賴關(guān)系。如果重新定義路由,模板中的鏈接可能會失效。
為了避免這些問題,Flask 提供了 url_for() 輔助函數(shù),它使用應(yīng)用的 URL 映射中保存的 信息生成 URL。
url_for()函數(shù)的簡單用法
url_for() 函數(shù)最簡單的用法是以視圖函數(shù)名(或者 app.add_url_route() 定義路由時 使用的端點名)作為參數(shù),返回對應(yīng)的 URL。
例如,在當前版本的 hello.py 應(yīng)用中
調(diào)用url_for('index')得到的結(jié)果是 /,即應(yīng)用的根 URL。
調(diào)用 url_for('index', _external=True) 返回的則是絕對地址,在這個示例中是 http://localhost:5000/。
- 生成連接應(yīng)用內(nèi)不同路由的鏈接時,使用相對地址就足夠了。如果要生成 在瀏覽器之外使用的鏈接,則必須使用絕對地址,例如在電子郵件中發(fā)送 的鏈接。
url_for()函數(shù)生成動態(tài)URL
使用 url_for()生成動態(tài) URL 時,將動態(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ù),非動態(tài)的參數(shù)也會添加到查詢 字符串中。
例如,url_for('user', name='john', page=2, version=1)的返回結(jié)果是
/user/ john?page=2&version=1。
《基于Python的Web應(yīng)用開發(fā)實戰(zhàn)(第二版)》
轉(zhuǎn)載于:https://www.cnblogs.com/hl001/p/10232694.html
總結(jié)
- 上一篇: Mybatis入门及于hibernate
- 下一篇: 转 : 深入解析Java锁机制