如何在路径中添加前缀RouteTableDef
以免重复 URL 的公共部分?Flask 有flask.Blueprint
,Django django.urls.include
,但是 aiohttp 呢?
我想要这样的代码:
from aiohttp import web
routes = web.RouteTableDef()
@routes.get('/api/info')
async def get_info(request):
...
@routes.get('/api/obj')
async def get_obj(request):
...
app = web.Application()
app.add_routes(routes)
转换成这样的东西:
from aiohttp import web
routes = web.RouteTableDef()
routes_api = web.RouteTableDef()
routes.append(routes_api, prefix='/api')
@routes_api.get('/info')
async def get_info(request):
...
@routes_api.get('/obj')
async def get_obj(request):
...
app = web.Application()
app.add_routes(routes)
能够在单独的文件中对部分路径进行描述。
aiohttp 没有嵌套路径或前缀,但有用于相同目的的带有前缀的嵌套应用程序。原来这段代码:
这使得将子应用程序移动到单独的文件中变得容易。有关更多详细信息,请参阅文档:Web 高级:嵌套应用程序