Flask имеет before_request
, after_request
и другие функции, которые могут вам помочь.
Пример использования:
# routes that won't be hash validated
PUBLIC_ROUTES = ["/favicon.ico", "/"]
@app.before_request
def validate_hash():
# avoid validating on public routes
for route in PUBLIC_ROUTES:
if route == request.path:
return
hash = g.params.get("hash", None)
# validate hash exists in request
if not hash:
raise BadRequestError("Missing hash")
if hash != DEFAULT_HASH:
raise UnauthorizedError("Hash is invalid")
перед каждым запросом к маршрутам фляги, которые не объявлены в PUBLIC_ROUTES
, метод будет выполнен и попытается проверить параметр хеша, полученный в запросе
о вашей заметке, вы можете добавить еще один before_request
, который запускает контроллер, и использовать функцию flask.g
для передачи его на другие маршруты в вашем потоке.