设置并判断session的作用是已经登陆的用户才可以访问到主页,对于session的判断方法有以下3个版本
- 在每个登陆之后才可以访问的路由下,进行判断,效率太低,弃用该方法
 
@app.route('/index')
   def index():
    if not session.get('user'):
       return redirect(url_for('login'))
    return render_template('index.html',stu_dic=STUDENT_DICT)- 再写一个装饰器,在装饰器里进行判断session,这种方式适用于,需要装饰的函数较少的情况
 
import functools
   def auth(func):
    @functools.wraps(func)    #装饰器返回的inner函数,所以会把函数名修改成inner,调用此句将函数改成原来的名字
    def inner(*args,**kwargs):
     if not session.get('user'):
      return redirect(url_for('login'))
     ret = func(*args,**kwargs)
     return ret
    return inner
@app.route('/index')
@auth
def index():
    return render_template('index.html')
   #应用场景:比较少的函数中需要额外添加功能。- 利用before_request,在请求响应之前进行session判断
 
@app.before_request
def xxxxxx():
    if request.path == '/login':    #登陆界面不需要验证session
        return None
    if session.get('user'):      #如果session存在,不做其他处理
         return None
    return redirect('/login')   #session不存在的话,直接重定向到登陆界面                
                










