Sanic的类视图函数应该如何写装饰器?

本文最后更新于:2022年7月9日 晚上

前言

为了更好的创建一个 web API,在编码时遵循“一次且仅一次”的原则很有必要的,而使用装饰器则是遵循这些原则的最好方式之一,您可以将特定的逻辑进行封装,灵活的在各种响应函数上复用。
在Sanic的官方文档中,只提到了在普通视图函数上使用装饰器的方法。但在更多情况下,后端都是类视图函数的结构。本文将会介绍如何在类视图函数中使用装饰器。

开始

1
2
3
4
5
6
7
8
class AccessLog:
@staticmethod
async def get(count: int = 20) -> dict:
result = {
"stream_logs": "test",
"device_logs": "test"
}
return result

只需要在具体的方法前加上@关键字的装饰器就可以了。需要注意的是,根据不同的装饰器,有可能装饰器名后面需要加上’()’。