Flask-RESTful中装饰器的使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask-RESTful中装饰器的使用相关的知识,希望对你有一定的参考价值。

参考技术A Flask-Restful的创建实例方法

在这里定义的decorators是应用于所有的 Resource 的API

Flask-RESTful在 扩展Flask-RESTful的使用 提到这种使用场景。

Flask-RESTful的装饰器可以用于许多场景,比如用户验证的场景或某些API需要特殊权限验证的地方。

** 需要注意的一点:**

Python中装饰器的用法

  1. 定义:
    1. 装饰器本身就是一个函数
    2. 为其他函数提供附加功能
      1. 不改变源代码
      2. 不改变原调用方式
    3. 装饰器=高阶函数+嵌套函数
  2. 知识点:
    1. 函数本身就是一个变量(意味着可以被复制给一个变量:test=test(1) )
    2. 高阶函数
      1. 把函数名当成一个实参传递给另一个函数func(test1) (不改变源代码的前提下添加代码)
      2. 返回值中包含函数名return deco (不改变函数的调用方式)
    3. 嵌套函数:函数中加入新的函数def func1(): def func2():
  3. 典型结构:   
技术分享
1 def func1(test):
2     def deco():
3         #progress
4     return deco#返回函数的地址,达到不改变调用方式的目的
View Code

完整程序:

技术分享
# __Author__Panda-J____

import time


def timer(func):  # for test1 & 2
    start_time = time.time()
    func()  # run func and test its running time
    end_time = time.time()
    print("this func running time is %s" % (end_time - start_time))
return func

@timer
def test1():
    time.sleep(1)
    print("this is test1")


@timer
def test2():
    time.sleep(1)
    print("this is test2")


test1()
test2()
View Code

 

以上是关于Flask-RESTful中装饰器的使用的主要内容,如果未能解决你的问题,请参考以下文章

Python编程系列---Python中装饰器的几种形式及万能装饰器

Python中装饰器的用法

python中装饰器的原理

python中装饰器装饰类中的方法

python中装饰器修复技术

Python3中装饰器介绍