@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'))
  • Вопрос задан
  • 329 просмотров
Решения вопроса 1
@deliro
А какой смысл юзать flask, если лень?
Используй django, там за тебя уже добавили middleware'ы.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы