代码如下,诸如 edit(id)
, delete(id)
这些都需要用户登录后才能执行,而我现在用的是下面这种很初级的方法,导致代码很多冗余,不知道有没有统一简单点的判断方法
if not session.get('logged_in'): flash('请先登录') return redirect(url_for('login'))
@login_required
我用一个简单的办法处理了一下
@app.before_request def accessFilter(): //处理 publicUrl = ['login', 'static', 'register'] if not g.user: if request.url.split('/')[3] not in publicUrl: //redirect( url_for('login') ) etc.
其中 accessFilter() 方法会在每次请求之前执行
你可以去这个链接看看,有个flask推荐的做法
btw,用flask的时候,如果有不知道如何实现的东西,可以去Patterns for Flask看看,一般都会有惊喜
对于登陆控制,可以使用 flask-login 扩展,里面有个 decorator 可以进行登陆控制。
flaskext.login.login_required(fn)
@app.route("/post") @login_required def post(): pass