from flask import session @login.route('/login', methods=['GET', 'POST']) # 登录成功后,设置session为true flask.session['logged_in'] = True return redirect('/index')
以上内容是要放在登录检验里,当你登录成功时,给与session一个True的值
from functools import wraps from flask import redirect, session def login_judge(f): # @wraps(func) # 取决于你传入参数的设置名称 @wraps(f) # @wraps可以保证装饰器修饰的函数的__name__的值保持不变,不会改变原函数的名称 def decorated_function(*args, **kwargs): if 'logged_in' in session: # 判断"logged_in"参数 return f(*args, **kwargs) else: print('你需要先登录') # 也可以做其他的提示显示到不同地方 return redirect('/login/u_login') return decorated_function
以上是制作一个校验装饰器,用于你需要设置登录校验的函数上
from login_judge import login_judge # 导入上面你制作的校验装饰器 @login_judge @ 放置于你需要检验的(视图)函数,def之上即可
以下是装饰器的简单模版,摘自网上
from functools import wraps # 对函数的装饰器, 对类func最好为cls def decorate(func): @wraps(func) # 增添或修改功能的函数 def wrapper(*args,**kwargs): # 执行被装饰的函数 result = func(*args,**kwargs) # 返回结果 return result # 返回内层函数 return wrapper