如何在AioHttp中添加Run Nested应用程序

时间:2018-01-11 05:19:07

标签: aiohttp

我正在尝试在AIOhttp中嵌套应用程序,但无法让它运行。

如果我希望我的网址与{1, 2, 3, 6}localhost/greet/类似,我使用的是以下代码,但却提供localhost/greet/abc,因此我的路由不正确。

我也无法在这里找到太多的在线资源。

以下是我的代码:

404 Not Found

任何指导都会有所帮助!

1 个答案:

答案 0 :(得分:1)

不完全清楚你的问题是什么,但这样可行:

from aiohttp import web

async def index_view(request):
    return web.Response(text='index\n')

async def subapp_view(request):
    name = request.match_info.get('name', "Anonymous")
    txt = "Hello {}\n".format(name)
    return web.Response(text=txt)

app = web.Application()
app.router.add_get('/', index_view)

greet = web.Application()
greet.router.add_get('/{name}', subapp_view)

app.add_subapp('/greet/', greet)

if __name__ == '__main__':
    web.run_app(app, host='127.0.0.1', port=8080)

然后用curl测试:

~ 0  25ms ➤  curl localhost:8080/
index
~ 0  33ms ➤  curl localhost:8080/greet/world
Hello world

希望能回答你的问题。