我试图在aiohttp中创建一个基于类的视图。我跟随doc。一切顺利但我无法找到详细观点的方法。
from aiohttp import web
class MyView(web.View):
async def get(self):
resp = await get_response(self.request)
return resp
async def post(self):
resp = await post_response(self.request)
return resp
app.router.add_view('/view', MyView)
此代码将生成两个端点:
POST /view
GET /view
但是如何使用基于类的视图添加GET /view/:pk:
?我知道我可以手动创建它,添加到没有基于类的视图的路由器,但我在这里寻找一种方法来使用它。
UPD: 目标是生成像
这样的URL"""
POST /view # creation
GET /view # a full list
GET /view/:id: # detailed view
"""
from aiohttp import web
class MyView(web.View):
async def get(self):
resp = await get_response(self.request)
return resp
async def post(self):
resp = await post_response(self.request)
return resp
async def detailed_get(self):
resp = await post_response(self.request)
return resp
app.router.add_view('/view', MyView)
或至少获取以下网址:
POST /view # creation
GET /view/:id: # detailed view
答案 0 :(得分:0)
要在基于类的视图上创建其他行为,请向View添加路由装饰器。
from aiohttp import web
routes = web.RouteTableDef()
@routes.view('/ert/{name}')
@routes.view('/ert/')
class MyView(web.View):
async def get(self):
return web.Response(text='Get method')
async def post(self):
return web.Response(text='Post method')