1

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

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'))

那么如何在此类/函数上强制登录?

4

1 回答 1

6

文档中有一个关于装饰视图的部分

使用烧瓶登录?如果内置login_required装饰器不适合基于分类的视图,那么您可以编写自己的 - 关键是unauthorizedLoginManager实例的调用:

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
于 2013-10-15T08:26:26.860 回答