Pyt*_*ast 5 python curl flask python-requests postman
我正在使用Postman和请求库向我的Flask应用程序发送POST请求.当我使用Postman时,我可以获取数据json.loads(request.data).当我使用请求或卷曲时,我可以获取数据request.form.为什么使用填充不同属性的两个工具发送相同的数据?
您已使用Postman将数据作为JSON发送,并且您已使用请求和curl将其作为表单数据发送.你可以告诉任何一个程序以你期望的方式发送数据,而不是让它使用它的"默认".例如,您可以发送带有请求的JSON:
import requests
requests.post('http://example.com/', json={'hello': 'world'})
Run Code Online (Sandbox Code Playgroud)
另请注意,您可以直接从Flask请求获取JSON,而无需自行加载:
from flask import request
data = request.get_json()
Run Code Online (Sandbox Code Playgroud)
request.data保存请求的主体,无论它是什么格式.常见的类型是application/json和application/x-www-form-urlencoded.如果内容类型是form-urlencoded,则将request.form使用解析的数据填充.如果是json,那么request.get_json()将访问它.
如果您真的不确定是否将数据作为表单或JSON获取,您可以编写一个简短的函数来尝试使用一个,如果不起作用则使用另一个.
def form_or_json():
data = request.get_json(silent=True)
return data if data is not None else request.form
# in a view
data = form_or_json()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3650 次 |
| 最近记录: |