Вы можете добавить unique index
в group_id
; если вы уверены, что group_id
уникален.
Он может решить ваш случай без изменения запроса.
Поздний ответ, но он еще не упоминался в ответах. Возможно, он должен заполнить уже исчерпывающие ответы. По крайней мере, это разрешило мой случай, когда мне пришлось разбивать таблицу со слишком большим количеством полей.
Есть несколько свойств объекта запроса, который вы можете проверить, документально здесь , 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'))
Вы можете использовать декоратор. Вот пример того, как проверять ключ 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
Вот реализация принятого ответа с 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()