在flask中我们有很多控制器需要验证是否登录,或者验证某些参数是否合法,这时候就可以使用python的函数描述功能来完成了,下面是一个验证用户是否登录的简单例子,详细的文档参考:
http://flask.pocoo.org/docs/patterns/viewdecorators/
from functools import wraps
#检查是否登录
def checkLogin(f):
@wraps(f)
def decorated_function(args, **kwargs):
if not flask.session.has_key(‘userid’) or flask.session[‘userid’] == 0:
return redirect(‘/login’, code=302)
return f(args, **kwargs)
return decorated_function
#以下是页面控制器
@app.route(‘/‘, methods=[‘GET’])
@checkLogin
def index():
return “user is login”
@app.route(‘/my’, methods=[‘GET’])
@checkLogin
def index():
return “user center”
这样我们就可以根据需要做各种各样的请求中间件来灵活处理