python
flask
form action url_for
在Flask實作_基礎_07_POST and GET範例中,我們在HTML語法中設置了action='/login'
,這並不是一個很好的寫法,這會造成後續路由名稱變更之後的困擾,來看看如何利用之前所學調整。
當表單在Submit
的時候,會依action='url'
來傳遞資料到該路由,如果表單設置都是寫死路由的方式去設置的話,只要app.route('你的路由')
調整,就會發生之前提到的每個文件都要去看有沒有使用這個路由的問題,建議作法,還是利用url_for
來設置。
首先,新增一個HTML文件如下:
第8行:action
的部份以url_for('function name')
設置,function name
為該路由所裝飾器函數名稱
接著調整Python文件:
執行專案,然後查看網頁原始碼,可以發現action
成功被解析到相對應的路由,如下圖:
現在,我們嚐試著修正@app.route
的路由名稱設置
第1行:將路由名稱由login
變更為loginurl
重新執行專案,查詢網頁原始碼,如下圖:
可以發現到,路由名稱的解析依然成功指向loginurl
這次我們用一個實際案例瞭解到url_for
的實用性,可以成功的映射到相對應的路由名稱當然有它的背後原理,但這部份後續的實作中會有對endpoint
的說明,暫時我們理解到這樣就可以,下一步我們要來認識另一個實用性很高的redirect
。
上一話:Flask實作_基礎_07_POST and GET
下一話:Flask實作_基礎_09_redirect after some action