gpt4 book ai didi

python - Aiohttp 路由 (aiohttp.web.RouteTableDef)

转载 作者:行者123 更新时间:2023-11-30 22:12:47 25 4
gpt4 key购买 nike

我在使用 RouteTableDef 时遇到问题。
有一些项目的路由结构如下:

1) 有文件route.py
路线.py

from aiohttp import web
routes = web.RouteTableDef()

2) 不同的文件中有一些处理程序,例如:处理程序1.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 导入该变量并使用它。
为了将路由注册到应用程序,我们从 routes.py 导入 routes
如何使其与 aiohttp v3.3.2 一起使用?

问题是:它适用于 aiohttp 版本 2.3.10。
但真实的项目确实采用了这种路由方式,而且它是有效的。
如何创建一个存储路线的地方?
我认为问题出在 lib 版本中,因为该项目不适用于最新版本的 aiohttp。

最佳答案

这里的问题是导入的顺序,正如已经回答的那样。这就是我在每个文件中创建一个 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,
])

关于python - Aiohttp 路由 (aiohttp.web.RouteTableDef),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50984282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com