Проведение проверки параметров запроса для маршрутов колб

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

Теперь в будущем команда может добавить много новых маршрутов и соответствующих контроллеров. Как я могу обеспечить, чтобы они всегда добавляли проверку параметров?

@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/

Другие вопросы по тегам