首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Aiohttp路由(aiohttp.web.RouteTableDef)

Aiohttp路由(aiohttp.web.RouteTableDef)
EN

Stack Overflow用户
提问于 2018-06-22 08:56:54
回答 2查看 2K关注 0票数 1

我对RouteTableDef有个问题。

在某些项目中,路由结构如下:

1)存在文件route.py

代码语言:javascript
复制
 routes.py
代码语言:javascript
复制
from aiohttp import web
routes = web.RouteTableDef()

2)在不同的文件中有一些处理程序,例如: handler1.py

代码语言:javascript
复制
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)和主文件,其中应用程序运行:

代码语言:javascript
复制
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。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-22 17:08:29

将请求处理程序handle导入到web.Application创建和运行的文件中。在从routes导入routes.py之前导入它

票数 1
EN

Stack Overflow用户

发布于 2019-01-13 06:23:27

这里的问题是进口的顺序,正如已经回答的那样。这是我在每个文件中创建一个web.RouteTableDef()的原因之一,然后我将它们放在一起用于app.router

代码语言:javascript
复制
from .dashboard import routes as dashboard_routes
from .posts import routes as posts_routes

app.router.add_routes([
    *dashboard_routes,
    *posts_routes,
])
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50984282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档