# 前言 在大學和碩士期間主要都是接觸深度學習和電腦視覺的方面的研究,但最近慢慢發現,除了要會這些,許多公司也更重視如何把模型的結果接上後端的API或APP來做使用。但我對製作API或APP是完全沒有概念的,所以這是開始學習製作API和APP的第一天。 這是我的學習紀錄,所有範例都是跟著[Book_Python Flask實作記錄](https://hackmd.io/GVo6X6LoS3GNIW50LBJytw)的教學,並使用我自己的方法整理,以及加上自己的看法。 # 說明 07的範例中是把url寫死的,只要```app.route('路由')```調整了,就會像04範例中提到的,需要修改所有用到這個路由的文件。所以最好的辦法,還是透過```url_for```設置。 - 新增一個html文件,記得放入templates資料夾 ```html= <!DOCTYPE html> <html lan="en"> <head> <meta charset="UTF_8"> <title> Hello Page </title> </head> <body> <form method="POST" action={{url_for('login')}}> <p> <input type="text" name="username" /> </p> <p> <button type="submit"> Submit </button> </p> </form> </body> </html> ``` 第10行:```action```的部份以```url_for('function name')```設置,```function name```為該路由所裝飾器函數名稱 ```python= from flask import request from flask import render_template # 固定格式 app = Flask(__name__) @app.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'POST': return 'Hello ' + request.values['username'] return render_template('/form_action_url_for.html') if __name__ == "__main__": app.run(debug=True) ``` <br> 執行後查看原始碼,可以發現```action```==成功接收到對應的路由,如下圖所示:== ![](https://hackmd.io/_uploads/H1dMYZdy6.png =70%x) <br> 接著修改```@app.route```的路由名稱 ```python= @app.route('/loginurl', methods=['GET', 'POST']) ``` 執行後,```action```也能成功接收到對應的路由,如下圖所示: ![](https://hackmd.io/_uploads/HJ5g5Zdyp.png =70%x) 所以即使修改```@app.route```的路由名稱,只要透過```url_for```,```action```就能捕捉到相對應的路由,而不需要修改整個文件。 [Source Code Please Visit](https://github.com/ChrisCodeNation/How-to-Make-an-API-with-Flask-Course/blob/main/08_form_action_url_for.py)