python - flask:request.json 总是不返回任何内容,尽管发送了有效的 json
问题描述
我在服务器端有这个代码
from flask import Flask, request, jsonify
app=Flask(__name__)
@app.route("/pingtest")
def pingtest():
return "Pong!"
@app.route("/registrar_alumno", methods=["POST"])
def registrar_alumno():
print(request.json)
return jsonify(request.json)
app.run(debug=True,port=4000)
在客户端我有这个代码
import requests
r=requests.post("http://127.0.0.1:4000/registrar_alumno",
data={"test":"hello there"})
print(r.text)
我希望在双方都获得 {"test":"hello there"} 但我在服务器上有这个:
(asistencias) PS C:\Users\Alumno\Desktop\Proyectos\py\gestion_academica\asistencias> python .\server.py [...] (服务器始终显示的无关消息)
无 #...(这应该是 print(request.json) 指令)
127.0.0.1 - - [15/Mar/2020 16:22:45] "←[37mPOST /registrar_alumno HTTP/1.1←[0m" 200 -
这在客户端
(asistencias) PS C:\Users\Alumno\Desktop\Proyectos\py\gestion_academica\asistencias> python .\testclient.py
没有任何
我不知道这有什么问题,我希望有人可以帮助我找到错误
解决方案
发生这种情况是因为您data
在客户端请求中使用带有字典的参数来发送表单编码数据,从而导致request.json
返回None
.
使用json
参数发送 JSON:
import requests
r=requests.post("http://127.0.0.1:4000/registrar_alumno", json={"test":"hello there"})
这会将数据序列化为 JSON 并将Content-Type
标头更改为application/json
.
请参阅有关更复杂的 POST 请求的请求文档。
推荐阅读
- java - 无限滚动总是加载相同的最后一个值
- node.js - 未处理的拒绝(错误):React 和节点应用程序中的网络请求失败
- python - 如何使用 multipart_upload 在 Amazon S3 中正确组织块的并行加载?
- google-sheets - 如何根据上个月获取列中最后一个单元格的平均值?
- reactjs - React 生产构建未使用的代码拆分块
- html - 这HTML 元素未按预期工作
- java - 如何使用opencsv写入内容为csv的输出流?
- javascript - 用于 LIVE 徽章/图像的 HLS/m3u8 流检查器
- c++ - 如果在通过头文件包含类的构造函数时不使用大括号和类的构造函数,则会出现错误
- reactjs - useEffect Hook - 如何检测状态数组中对象属性的变化