2015-06-12 26 views
0

考慮以下情況,我有一個特定的路線和相應的控制器 並根據請求params我需要執行一些驗證,然後完成 請求。執行瓶頸路線的請求參數驗證

現在,在未來的團隊可能會添加大量的新路線和相應的控制器 我如何可以強制他們總是在參數添加驗證的?

@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 
+0

是什麼驗證樣子的? 「MyController」的用途是什麼?你能提供一個有效的例子嗎? – dirn

+0

驗證是特定於用戶和型號的。例如,如果用戶被允許訪問給定的實例。如果是,他可以修改的屬性是什麼 – r0h1t4sh

回答

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/