有一个基于aiohttp的服务器,看起来像:
import aiohttp
routes = web.RouteTableDef()
@routes.post('/route1')
async def route1(request):
req_json = await request.json()
step1 = func1(req_json)
step2 = func2(step1)
return web.Response(body=step2, status=200)
我想在本地测试该服务器,而不运行整个服务器,特别是route1中的step1和step2函数。
所以我做了:
import asyncio
from myserver import route1
json_request = {"some": "data"}
loop = asyncio.get_event_loop()
loop.run_until_complete(route1(json_request))
问题是,在运行本地测试时,我必须将req_json = await request.json()
替换为req_json = request
。如何使用.json()方法创建可等待的变量来代替json_request
dict?
1条答案
按热度按时间plupiseo1#
要使这条线工作:
await request.json()
,实际上并不需要request
对象是可等待的。它可以是具有.json()
属性的普通对象,该属性 “是” 可等待对象。协程是一个合理的选择。就像这样: