Python Flask: 实现用户权限管理功能
来自CloudWiki
用户权限
需用户登录后才能访问的路由及说明如下:
- /dashboard
- /add_article
- /edit_article
- /delete_article
- /logout
对于这些路由,可以在方法中添加逻辑判断来看其是否登录,
也可以使用装饰器来简化代码。
登录检验装饰器
from functools import wraps # 如果用户已经登录 def is_logged_in(f): @wraps(f) def wrap(*args, **kwargs): if 'logged_in' in session: # 判断用户是否登录 return f(*args, **kwargs) # 如果登录,继续执行被装饰的函数 else: # 如果没有登录,提示无权访问 flash('无权访问,请先登录', 'danger') return redirect(url_for('login')) return wrap
添加装饰器
# 控制台 @app.route('/dashboard', methods=['GET', 'POST']) @is_logged_in def dashboard(): return "欢迎光临"
效果
添加登录判断的装饰器后,
访问http://119.3.212.161:5006/dashboard
系统会首先判断是否登录,如果没有登录,会自动跳转到/login页面