示例代码
from functools import wraps
from flask import Flask, abort, g, session
app = Flask(__name__)
app.secret_key = 'test' # 设置session的密钥
@app.before_request
def prepare():
g.name = session.get('name')
def login_required(f):
@wraps(f) # 可以让被装饰的函数wrapper使用指定的函数f的信息,避免函数标记的冲突问题
def wrapper(*args, **kwargs):
if g.name:
return f(*args, **kwargs)
else:
abort(401)
return wrapper
@app.route('/user')
@login_required
def user():
return 'user'
@app.route('/login')
def login():
session['name'] = 'zs'
return 'login'
if __name__ == '__main__':
app.run(debug=True)