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

では、このクラス/関数で loginrequired を強制するにはどうすればよいでしょうか?

4

1 に答える 1

6

ビューの装飾に関するドキュメントにセクションがあります

Flask-Login を使用していますか? 組み込みの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 に答える