Узнайте, какой метод / API вызвал @ app.before_request [дубликат]

Вы можете добавить unique index в group_id; если вы уверены, что group_id уникален.

Он может решить ваш случай без изменения запроса.

Поздний ответ, но он еще не упоминался в ответах. Возможно, он должен заполнить уже исчерпывающие ответы. По крайней мере, это разрешило мой случай, когда мне пришлось разбивать таблицу со слишком большим количеством полей.

25
задан SeanPlusPlus 16 January 2013 в 23:16
поделиться

3 ответа

Есть несколько свойств объекта запроса, который вы можете проверить, документально здесь , request.path, вероятно, то, что вы хотите. Могу ли я предложить request.endpoint , так что вы будете защищены, если вы решите направить свое представление на другой URL-адрес или несколько URL-адресов

@app.before_request
def before_request():
    if 'logged_in' not in session and request.endpoint != 'login':
        return redirect(url_for('login'))
49
ответ дан davidism 25 August 2018 в 06:05
поделиться

Вы можете использовать декоратор. Вот пример того, как проверять ключ api перед spesific-запросами

from functools import wraps

def require_api_key(api_method):
    @wraps(api_method)

    def check_api_key(*args, **kwargs):
        apikey = request.headers.get('ApiKey')
        if apikey and apikey == SECRET_KEY:
            return api_method(*args, **kwargs)
        else:
            abort(401)

    return check_api_key

И вы можете использовать его с помощью:

@require_api_key
10
ответ дан Michael Scheper 25 August 2018 в 06:05
поделиться

Вот реализация принятого ответа с flask-login :

@app.before_request
def require_authorization():
    from flask import request
    from flask.ext.login import current_user

    if not (current_user.is_authenticated or request.endpoint == 'login'):
        return login_manager.unauthorized()
3
ответ дан Ryne Everett 25 August 2018 в 06:05
поделиться
Другие вопросы по тегам:

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