Flask可插入视图和登录需要

时间:2013-10-15 08:08:42

标签: python flask

我理解可插拔视图的工作原理。我目前不明白的是如何添加一个类扩展视图所需的登录。我目前这样做:

from flask.views import View

class ShowUsers(View):

    def dispatch_request(self):
        users = User.query.all()
        return render_template('users.html', objects=users)

app.add_url_rule('/users/', view_func=ShowUsers.as_view('show_users'))

那么如何强制登录这个类/函数?

1 个答案:

答案 0 :(得分:6)

文档中有关于decorating views

的部分

使用Flask-Login?如果内置的login_required装饰器不适合基于分类的视图,那么您可以自己编写 - 关键是LoginManager实例上对unauthorized的调用:

from functools import wraps
def user_required(f):
    @wraps(f)
    def decorator(*args, **kwargs):
        if not current_user.is_authenticated():
            return login_manager.unauthorized()
            # or, if you're not using Flask-Login
            # return redirect(url_for('login_page'))
        return f(*args, **kwargs)
    return decorator
相关问题