100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Sanic 接收前端post 提交的json数据

Sanic 接收前端post 提交的json数据

时间:2024-08-10 23:07:48

相关推荐

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格式数据是内部使用双引号的。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。