Python 装饰器用处
装饰器:外部函数传入被装饰函数名,内部函数返回装饰函数名。
特点:1. 不修改被装饰函数的调用方式 2. 不修改被装饰函数的源代码
多个装饰器装饰一个函数, 其执行顺序是从下往上。
装饰器不仅可以是函数,还可以是类,相比函数装饰器,类装饰器具有灵活度大、高内聚、封装性等优点。使用类装饰器主要依靠类的__call__方法,当使用 @ 形式将装饰器附加到函数上时,就会调用此方法。
下面的代码是一段flask框架里面的。
1:如果函数,index()和 admin(),没有加上 api_route 装饰器的话,那么他就是一个普通函数,而加上之后就变成了路由。
2:从中可以看出 index 是所有人都可以访问的。而 admin 需要验证后才可以访问。
#!/usr/bin/env Python3
__author__ = '未昔/angelfate'
__date__ = '2019/7/21 17:26'
# -*- coding: utf-8 -*-
from flask import Blueprint,request
from common.libs.Helper import ops_render
api_route = Blueprint( 'index_page',__name__ ) # 入口文件
@api_route.route('/index', methods=['GET'])
def index():
req = request.values
name = req['name'] if 'name' in req else ''
resp_data = {}
resp = {'code': 200, 'msg': u"success", 'data': {}}
return ops_render("index.html", resp_data)
@api_route.route('/admin', methods=['GET','POST'])
@auth.login_required # 需要验证登录
def admin():
if request.method == "GET":
return ops_render("login.html")
req = request.values
pass
标题打错了 😳
大哥标题是不是错了额…. 看的我懵懵的 😟