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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值