Python Flask (連線方法 GET、POST)

出處: Youtube 彭彭的課程  Python Flask 網站前後端互動 – 連線方法 GET、POST

實作筆記

用GET來做前後端互動

GET是預設,如果什麼都沒有打的話就會使用預設的GET,之前在Python Flask (Form)寫的對應含式都是GET

連線方式 : 直接輸入網址或是超連結、表單

用POST來做前後端互動

連線方式 : 表單

安全性 :相對下比GET安全(適用於帳號和密碼之類)

這章節重點是要來用POST做前後端互動

這邊後端Python程式碼(專案結構)和前端的index.html(首頁)都必須改成POST

這邊先修改前端

index.html(首頁)

由於剛剛說過POST適用於需加密的資訊,所以我這邊把上一章節姓名改成帳號和密碼來做試驗

重點是把方法改成POST,<form action=”/show” method=”POST”>,如果只有<form action=”/show>,那就是預設的GET方法。

<form action="/show" method="POST">
    帳號:<input type="text" name="a" />
    密碼:<input type="text" name="p" />
    <button>登入</button>
  </form>

Python程式碼(專案結構)

這邊的POST和剛剛的GET的寫法不大一樣,除了上面要加上methods=[“POST”]

原本GET的寫法 account = request.args.get(“a”,””)

也要改成post寫法 account = request.form[“a”]

#1使用POST方法,建立路徑/show對應的處理函式
@app.route("/show",methods=["POST"])
def show():    
    #接收GET方法的 Query String
    #account = request.args.get("a","")
    #password = request.args.get("p","")
    #接收POST方法的 Query String
    account = request.form["a"]
    password = request.form["p"]
    return "帳號是: " + account + "密碼是: " + password
#回傳網站page的內容

網頁端

寫好後再網頁端跑看看

網頁頁面看起來沒什麼變化,但網址列和剛剛用的get方法比起來好像有什麼不同

用get方法的網址列會顯示如下

http://127.0.0.1:2000/show?a=Hygge&p=12345

但這邊用post方法卻只有顯示http://127.0.0.1:2000/show,沒把使用者的輸入給放到網址列上去,增加了保密性

F12開發者介面

fn+F12看看開發者介面

點選網路–全部

點選網路–全部–左下的show紀錄可以看到我們的使用post的紀錄