需要Flask可插拔视图和登录

2024-05-17 06:33:20 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

那么如何强制这个类/函数使用loginrequired?在


Tags: fromimportview视图插拔flaskdefusers
1条回答
网友
1楼 · 发布于 2024-05-17 06:33:20

文档中有一节是关于decorating views

使用烧瓶登录?如果内置的login_required装饰器不适合基于类的视图,那么您可以自己编写—关键是在LoginManager实例上调用^{}

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

相关问题 更多 >