06 flask 特殊装饰器 session登录校验

from flask import Flask, session, render_template, redirect, request, send_file

app = Flask(__name__)
app.debug = True
app.secret_key = 'miyao'

# session登录校验
@app.before_request
def be1():
    if request.path == '/login':  # 防止无限重定向,当页面路由是登录时停止重定向
        return None
    if 'username' in session:
        return None
    else:
        return redirect('/login')

# 登录函数
@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST' and request.form['username'] is not None:
        session['username'] = request.form['username']
        print(session['username'])
        return redirect('/index')
    if request.method == 'GET':
        return render_template('login.html')

#错误重定义
@app.errorhandler(404)
def error404(ErrorMessage):
    print(ErrorMessage)
    return f'你访问的{request.path}页面不存在'


# 主页
@app.route('/index')
def index():

    return render_template('index.html')


if __name__ == '__main__':
    app.run()

# @app.before_request  # 请求进入视图函数之前
# @app.after_request  # 请求结束,返回影响客户端之前
# @app.errorhandler(404) # 重定义错误页面

 

posted @ 2020-12-28 16:33  纸短情长lol  阅读(175)  评论(0编辑  收藏  举报