Flask從入門到精通之鏈接的使用
阿新 • • 發佈:2018-01-29
相對 入門到 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從入門到精通之鏈接的使用