文章插图
装饰器的作用(简而言之):让其他函数在不需要做任何代码变动的前提下增加额外的功能
FBV加装饰器例:以统计时间的装饰器为例
def timer(func):def inner(*args, **kwargs):start = time.time()ret = func(*args, **kwargs)print('执行的时间是:{}'.format(time.time()-start))return retreturn inner
其中:timer为装饰器的名字(读者可自定义);func为需要被装饰的函数名字(一般写这个);inner也是自定义,但习惯写inner;*args, **kwargs为要被装饰的函数参数 。使用方式:
@timerdef xx(request):....
即:在需要的方法上加 @timer即可 。CBV加装饰器(共有3种方法,这里本人只列举其中2种方法,但是够了)注:这里需要再使用一个装饰器(不加也没关系,但是最好还是加上去)
from django.utils.decorators import method_decorator
例:还是以 统计时间的装饰器 为例方法一:
class Xxx(View):@method_decorator(timer)def xx(self, request):....
注:方法一比较简单,只需在定义函数上面加上 @method_decorator(timer) 即可方法二:
@method_decorator(timer, name='xx')class Xxx(View):def xx(self, request):....
注:方法二也不难,在类的上面加上 @method_decorator(timer, name='xx') 即可,其中 name='xx' 中的 'xx' 为读者自定的方法名 。望读者细心阅之 。
【Django中装饰器的使用方法】
推荐阅读
- 几例实用shell脚本分享
- 岳飞为什么被追封为鄂王,说岳全传中的人物
- 自制减肥茶7天瘦30斤,自制中药减肥茶斤暴瘦
- 中考十篇必看满分感恩作文?中考作文感悟类范文_1
- 秋分立蛋习俗介绍
- 养肝护肝最有效的中药,最好的养肝护肝中草药金线莲
- 蜜茶棕男生,种中草药棕鞋垫的制作方法
- 幼师|女生上中专,学哪些专业最合适呢?
- 郦生见沛公这一情节中体现了刘邦什么特点,汉书·郦食其传谁写的
- 东吴四杰是谁,吴中四杰是