@pcdesign

Как убрать бесконечное прописывание @login_required и @admin_required?

Есть сайт на flask со 100500 роутами.
И надо как дятлу прописывать декораторы для маршрутов.
Например:

@app.route('/userarea/income/')
@login_required
def user_income():
    return render_template("user_index.html")


@app.route('/userarea/income/add/')
@login_required
def user_income_add():
    return render_template("user_index.html")


@app.route('/adminarea/')
@login_required
@admin_required
def admin_firm():  
    return render_template("admin.html")

И т.д.


Вопрос: Какой смысл использовать flask-login, если и в @app.before_request есть возможность разрулить в 2-3 строки?
И в принципе какой смысл использовать flask-login?
В каком случае сессий не хватает?

@app.before_request
def before_request():
    g.user_id = session.get('user_id', None)
    g.admin_id = session.get('admin_id', None)
    if ((not g.user_id and request.path.startswith('/userarea/')) or
            (not g.admin_id and request.path.startswith('/adminarea/'))):
        return redirect(url_for('login'))
  • Вопрос задан
  • 322 просмотра
Решения вопроса 1
@deliro
А какой смысл юзать flask, если лень?
Используй django, там за тебя уже добавили middleware'ы.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы