首页 > 解决方案 > 在烧瓶中我自己的装饰器中从路由函数获取参数

问题描述

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

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

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

标签: flaskargumentsdecorator

解决方案


在 python 装饰器中,在使用之前对函数进行操作。

实际发生的是 Page 函数正在被重新定义。

页 = HowToGetNum(页)

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

def HowToGetNum(func):
  def GetsNum(Num):
    # 用 Num 做一些事情
    功能(数量)
  返回GetsNum

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


推荐阅读