one*_*ser 7 python rest python-3.x aiohttp
你能否就以下事项提出建议?
在localhost:8900那里有aiohttp服务器运行
当我从python做一个请求(使用python2模块请求)
requests.get("http://127.0.01:8900/api/bgp/show-route",
data={'topo':"switzerland",
'pop':"zrh",
'prefix':"1.1.1.1/32"})
Run Code Online (Sandbox Code Playgroud)
并且在aiohttp服务器中定义了一个路由
app.router.add_route("GET", "/api/bgp/show-route", api_bgp_show_route)
Run Code Online (Sandbox Code Playgroud)
正在被处理的像
def api_bgp_show_route(request):
pass
Run Code Online (Sandbox Code Playgroud)
问题是:如何在服务器端检索请求的数据部分?含义{'topo':"switzerland", 'pop':"zrh", 'prefix':"1.1.1.1/32"}
one*_*ser 14
啊,这个data部分是这样访问的
await request.json()
Run Code Online (Sandbox Code Playgroud)
你可以在官方的aiohttp文档中找到它
小智 6
您可以使用以下方式访问 POST 请求正文数据
if request.body_exists:
print(await request.read())
Run Code Online (Sandbox Code Playgroud)
小智 6
这取决于您希望数据的格式。
获取字符串:
request.text()
Run Code Online (Sandbox Code Playgroud)
获取字节:
request.read()
Run Code Online (Sandbox Code Playgroud)
要获取 JSON dict(注意,如果数据格式错误,则会抛出 json.decoder.JSONDecodeError!):
request.json()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8909 次 |
| 最近记录: |