前言
为什么要用装饰器呢?在实际开发中会有这样的需求:有些视图只能给特定的权限的用户看,有些视图是需要登录的时候看,如果给每个视图一一设置,那么代码量会很大。使用装饰器就不同,只要设置好了,只要使用装饰器对对应的视图进行装饰就能实现上面的需求。
一、环境
python 3.7 flask 2.0.2
二、使用步骤
本篇博客接着上篇博客flask自定义错误页继续写代码,文件目录如下  想具体了解装饰器的可以看这篇博客装饰器decorator实现Django的访问和权限控制
1.创建装饰器
创建装饰器文件decorators.py
from flask import session, redirect, url_for
from functools import wraps
def decorator_login(func):
@wraps(func)
def wrapper(*args, **kwargs):
name = session.get('name')
if name:
return func(*args, *kwargs)
else:
return redirect(url_for('test.login'))
return wrapper
2.使用
直接使用装饰器装饰对应视图函数即可
from flask_teach.decorators import decorator_login
@test_blue.route('/index')
@decorator_login
def index():
return render_template('test/index.html', name=session.get('name'))
结果
先注释装饰器再访问首页  使用装饰器之后再访问首页  登录之后才能访问  大功告成!!!有什么问题欢迎在评论区留言。
下一篇:flask使用redis
|