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) # 重定义错误页面