我对RouteTableDef有个问题。
在某些项目中,路由结构如下:
1)存在文件route.py。
routes.pyfrom aiohttp import web
routes = web.RouteTableDef()2)在不同的文件中有一些处理程序,例如: handler1.py
from aiohttp import web
from routes import routes
@routes.get('/get')
async def handle(request):
name = request.match_info.get('name', "Anonymous")
text = "Hello, " + name
return web.Response(text=text)诸若此类。
3)和主文件,其中应用程序运行:
from aiohttp import web
from routes import routes
if __name__ == '__main__':
app = web.Application()
app.router.add_routes(routes)
web.run_app(app, host='localhost', port=8877)这样做的目的是:
所有路由都存储在routes变量上,当我们想要创建新的处理程序时,我们从routes.py导入该变量并使用它。
为了注册到app的路由,我们从routes中导入routes.py。
以及如何使它与aiohttp v3.3.2一起工作?
问题是:它适用于2.3.10版本的aiohttp。
但是,有一个真正的项目,这种方式的路由和它的工作。
如何创建一个存储路线的地方?
我认为这个问题出现在lib版本中,因为该项目不适用于最新版本的aiohttp。
发布于 2018-06-22 17:08:29
将请求处理程序handle导入到web.Application创建和运行的文件中。在从routes导入routes.py之前导入它
发布于 2019-01-13 06:23:27
这里的问题是进口的顺序,正如已经回答的那样。这是我在每个文件中创建一个web.RouteTableDef()的原因之一,然后我将它们放在一起用于app.router。
from .dashboard import routes as dashboard_routes
from .posts import routes as posts_routes
app.router.add_routes([
*dashboard_routes,
*posts_routes,
])https://stackoverflow.com/questions/50984282
复制相似问题