aiohttp:如何将 sub_app 添加到 sub_app?
aiohttp: how to add sub_app to sub_app?
我需要将 sub_app 添加到 sub_app。这是我的代码
app = web.Application()
subapp = web.Application()
subapp.router.add_get('/page1/', handler)
app.add_subapp('/wt/', subapp)
subsubapp = web.Application()
subsubapp.router.add_get('/page2/', handler)
subapp.add_subapp('/sub/', subsubapp)
为什么找不到页面 /wt/sub/page2/
?
我认为 subsubapp
的路径是 /wt/
(sub_app
) 和 /sub/
(subsubapp
) 的串联。我错了吗?规则是什么?
此致,
瓦列里。
aiohttp
2.3 版有一个细微的错误:它不会通知不正确的子应用程序初始化顺序。
子应用逻辑上是frozen在parent注册后,添加新的路由是错误的。
尚未发布 aiohttp 3.0 在 app.add_subapp()
调用时引发显式异常,有关详细信息,请参阅相应的 issue and pull request。
修复您的片段重新排序路由注册调用:
from aiohttp import web
async def handler(request):
return web.Response(text="OK")
subsubapp = web.Application()
subsubapp.router.add_get('/page2/', handler)
subapp = web.Application()
subapp.router.add_get('/page1/', handler)
subapp.add_subapp('/sub/', subsubapp)
app = web.Application()
app.add_subapp('/wt/', subapp)
web.run_app(app, host='127.0.0.1', port=8080)
获取 http://127.0.0.1:8080/wt/sub/page2/
资源后 returns 200 OK
.
我需要将 sub_app 添加到 sub_app。这是我的代码
app = web.Application()
subapp = web.Application()
subapp.router.add_get('/page1/', handler)
app.add_subapp('/wt/', subapp)
subsubapp = web.Application()
subsubapp.router.add_get('/page2/', handler)
subapp.add_subapp('/sub/', subsubapp)
为什么找不到页面 /wt/sub/page2/
?
我认为 subsubapp
的路径是 /wt/
(sub_app
) 和 /sub/
(subsubapp
) 的串联。我错了吗?规则是什么?
此致, 瓦列里。
aiohttp
2.3 版有一个细微的错误:它不会通知不正确的子应用程序初始化顺序。
子应用逻辑上是frozen在parent注册后,添加新的路由是错误的。
尚未发布 aiohttp 3.0 在 app.add_subapp()
调用时引发显式异常,有关详细信息,请参阅相应的 issue and pull request。
修复您的片段重新排序路由注册调用:
from aiohttp import web
async def handler(request):
return web.Response(text="OK")
subsubapp = web.Application()
subsubapp.router.add_get('/page2/', handler)
subapp = web.Application()
subapp.router.add_get('/page1/', handler)
subapp.add_subapp('/sub/', subsubapp)
app = web.Application()
app.add_subapp('/wt/', subapp)
web.run_app(app, host='127.0.0.1', port=8080)
获取 http://127.0.0.1:8080/wt/sub/page2/
资源后 returns 200 OK
.