# 前言 在大學和碩士期間主要都是接觸深度學習和電腦視覺的方面的研究,但最近慢慢發現,除了要會這些,許多公司也更重視如何把模型的結果接上後端的API或APP來做使用。但我對製作API或APP是完全沒有概念的,所以這是開始學習製作API和APP的第一天。 這是我的學習紀錄,所有範例都是跟著[Book_Python Flask實作記錄](https://hackmd.io/GVo6X6LoS3GNIW50LBJytw)的教學,並使用我自己的方法整理,以及加上自己的看法。 # 說明 在定義```app.route('your url')```的時候,可以設置幾個參數,其中```methods```是用來定義這個url是否執行```GET```、```POST```等動作。 在HTTP中有八種method,其中較為常見的是以下四種: - ```GET```:取得資訊 - ```POST```:送出資訊 - ```UPDATE```:更新資訊 - ```DELETE```:刪除資訊 **NOTE:** 在flask中是透過```request```捕捉從client端所傳過來的資料,可以直接從```flask```import進來 ```python= from flask import request ``` ## 舉例 設計一個login頁面接收使用者的名字,並回傳歡迎的訊息給使用者,且須透過```render_template```將接收html文件 ```python= from flask import Flask from flask import request from flask import render_template # 固定格式 app =Flask(__name__) # 設置要用的method @app.route('/login', methods=['GET', 'POST']) def login(): # 利用request來捕捉使用者的動作是否為POST if request.method == 'POST': # 透過request.values取得表格欄位的內容 return 'Hello ' + request.values['username'] # html文件記得放入templates資料夾 return render_template('/post_and_get.html') if __name__ == "__main__": app.run(debug=True) ``` 第9行:在```app.route```中設置要使用的```methods```,如果沒有設置```POST```,使用者點擊之後會有異常訊息告知該路由不支援```POST``` 第12行:利用```request```來補捉使用者端的動作是否為```POST```,如果是```POST```就代表是使用者端透過```submit```所提交過來的資料。 第14行:透過```request.values['username']```取得從```form```傳遞來的```username```欄位資料 第16行:透過render_template接收html文件 <br> - post_and_get.html ```html= <form method='post' action='/login'> <input type='text' name='username' /> </br> <button type='submit'> Submit </button> </form> ``` 第1行:注意到```action='/login'```,這種寫法是不好的,未來如果我們有變更路由名稱,這邊也要跟著調整了,建議作法是使用url_for <br> ==登入畫面如下圖所示==  ==點擊Submit==  <br> ==下圖是透過chrome查看request的資料==   <br> [Source Code Please Visit](https://github.com/ChrisCodeNation/How-to-Make-an-API-with-Flask-Course/blob/main/07_post_and_get.py)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up