Sanic 接收前端post 提交的json数据
生活随笔
收集整理的這篇文章主要介紹了
Sanic 接收前端post 提交的json数据
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
sanic 在響應post 提交的數據時,分為兩種方式:一種是傳統的字符串數據,一種是json類型數據。sanic 對兩種數據的接收方式有所不同。
1. 傳統字符串方式
? 這種方式通過‘a=1$b=2' 的形式傳遞數據,接收方式也比較簡單。?
@app.post("/") async def index(request):s1 = request.form['username'] s2 = request.form['password']return await file("./templates/compare.html", stock=[s1, s2, s3])2. json 方式
@app.post("/login") async def index(request):print(request.body)#request.body 中是byte 形式的數據,需要解碼成utf-8data = j_son.loads(request.body.decode("utf-8").replace("'",'"'))#轉換之后的data 數據類型是dict 類型print("data",data,type(data)) username = data["username"] password = data["password"]print("paras from post request:",username,password) return json({"login_verify": "true","username":username})在使用curl 發送POST請求測試時,-d 參數中只能是單引號在內,雙引號在外的格式,否則會報錯。 但如果使用這種格式,在后端sanic 接收到post請求處理數據時,將數據從byte轉換成字符串后使用json.loads()函數轉為dict格式時,還需要將單引號轉換為雙引號。
后續測試發現, 使用前端發送實際請求時,攜帶的json格式數據是內部使用雙引號的。
總結
以上是生活随笔為你收集整理的Sanic 接收前端post 提交的json数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: USB过滤驱动程序
- 下一篇: 计算机网络设置中的网关是什么设备,网关是