Decorator将视图函数映射到端点,与定义url规则分开

时间:2016-02-02 09:51:27

标签: python flask decorator

我想通过调用我的装饰来构建一个view_functions字典!

404

我怎样才能简单地将装饰放在view_function之上(就像Flask一样)然后我的view_functions字典会自行填充?

1 个答案:

答案 0 :(得分:1)

你的dict分配是错误的。它需要位于外部之一,在定义时调用。在这种情况下,内部函数实际上并不需要做任何事情(当然,除了调用修饰函数之外)。

view_functions = {}
def route(rule):
    def _route(function_name):
        view_functions[rule] = function_name
        def __route(function_arg):
            function_name(function_arg)
        return __route
    return _route

另请注意,hello的定义不应位于if __name__块内。