gpt4 book ai didi

python - aiohttp 中基于类的 View

转载 作者:太空狗 更新时间:2023-10-29 21:45:55 24 4
gpt4 key购买 nike

aiohttp 库中使用基于类的处理程序而不是函数的正确方法是什么?我习惯于在 Django 中将处理程序编写为类,所以我想知道如何在 aiohttp 中正确执行此操作?

最佳答案

我假设您想使用基于类的处理程序来应用继承以重用代码。

从技术上讲,aiohttp 网络处理程序是任何接受请求参数并返回响应实例的协程。

例如

class BaseView:
def __init__(self, ...):
...

async def __call__(self, request):
return web.Response()

app.router.add_route('GET', '/', BaseView(...))

可以用作制作网络处理程序层次结构的基类。

甚至

class Handler:
def __init__(self, db):
self._db = db

async def get_from_db(self, data):
...

async def handle_a(self, request):
data = yield from self.get_from_db(
self.extract_from_request_a(request))
return web.Response(self.format_data(data))

async def handle_b(self, request):
data = yield from self.get_from_db(
self.extract_from_request_b(request))
return web.Response(self.format_data(data))


handler = Handler(db)
app.router.add_route('GET', '/a', hadndler.handle_a)
app.router.add_route('GET', '/b', hadndler.handle_b)

关于python - aiohttp 中基于类的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32819231/

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