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