装饰器_三(小案例)

实现flask中url和视图函数之间的映射

-- coding: UTF-8 --

from functools import wraps

user = {‘is_login’: True}

class Flask:
def init(self):
self.url_virw_maps = {}

def route(self, url):
    def outter_wrapper(func):
        self.url_virw_maps[url] = func.__name__
        @wraps(func)
        def inner_wrapps(*args, **kwargs):
            func(*args, **kwargs)
        return inner_wrapps
    return outter_wrapper

def run(self):
    while True:
        url = input('请输入网址')
        views_func = self.url_virw_maps.get(url)
        if views_func:
            exec(views_func + '()')
        else:
            print('404')

def login_required(func):
@wraps(func)
def wrapper(*args, **kwargs):
if user[‘is_login’] == True:
print(234)
func(*args, **kwargs)
print(123)
else:
print(‘请登录’)
return wrapper

app = Flask()

从里到外执行

@app.route(’/edit_user’)
@login_required
def edit_user(username=None):
print(‘修改用户%s成功’ % username)

@app.route(’/’)
def index():
print(‘index page’)

app.run()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值