对烧瓶路线执行请求参数验证

时间:2015-06-12 08:32:40

标签: python flask

考虑以下情况,我有一个特定的路由和相应的控制器 根据请求参数,我需要执行一些验证然后完成 请求。

现在未来团队可能会添加许多新路线和相应的控制器 我如何强制执行它们总是在参数上添加验证?

@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 个答案:

答案 0 :(得分: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/

相关问题