从烧瓶中我自己的装饰器中的路由函数获取参数

时间:2018-07-30 02:12:38

标签: flask arguments decorator

在烧瓶中,在route函数和view函数之间,如何获取参数,以便可以定义新的装饰器?这里我展示一个例子。

@app.route('/Page/<int:Num>')
@HowToGetNum(Num)  # here I do not know how to get Num
def Page(Num):
    ....

参数Num将被传递到Page中。但是在此之前,我想定义一个新的装饰器“ HowToGetNum”。但是,我发现没有办法将Num传递给它。有解决方案吗?

1 个答案:

答案 0 :(得分:0)

在python装饰器中,必须先对函数进行操作。

实际上是在重新定义Page函数。

Page = HowToGetNum(Page)

您可以做的是将HowToGetNum定义为:

def HowToGetNum(func):
  def GetsNum(Num):
    # do something with Num
    func(Num)
  return GetsNum

因此,新功能具有您的功能,然后运行原始页面