Проведение проверки параметров запроса для маршрутов колб
Рассмотрим следующий случай, когда у меня есть конкретный маршрут и соответствующий контроллер А, основываясь на параметрах запроса, мне нужно выполнить некоторые проверки и затем завершить запрос.
Теперь в будущем команда может добавить много новых маршрутов и соответствующих контроллеров. Как я могу обеспечить, чтобы они всегда добавляли проверку параметров?
@app.route("/do_something", methods=['GET'])
def lets_do_something():
MyController.lets_do_something()
class MyController(object):
def lets_do_something():
model_id = request.args.get("model_id", 0)
# diffferent validation specific to user and model_id
1 ответ
Вы можете создать декоратор, который выполняет логику проверки. Таким образом, для каждого нового маршрута, который вы или кто-то из команды создаете, вам нужно только добавить декоратор (в примере кода 'custom_decorator')
@custom_decorator
@app.route("/do_something", methods=['GET'])
def lets_do_something():
MyController.lets_do_something()
class MyController(object):
def lets_do_something():
model_id = request.args.get("model_id", 0)
# diffferent validation specific to user and model_id
Информацию о создании декораторов смотрите по этим ссылкам.
http://thecodeship.com/patterns/guide-to-python-function-decorators/ http://flask.pocoo.org/docs/0.10/patterns/viewdecorators/