当未在烧瓶中调用functin时,为什么会有一些打印?

时间:2018-10-16 12:14:52

标签: security flask decorator

烧瓶中的以下代码(伪代码)使我很困惑。

REPLACE(REPLACE(column, char(10),''),char(13),'')

其中函数IsIllegal用于检查用户是否未登录。我发现,即使用户未登录,func1也会始终打印数据。函数正常返回func1的返回值是非法的。但是我觉得这并不能保存,因为func1中的语句已执行(打印)。我该怎么理解?

1 个答案:

答案 0 :(得分:0)

您注册了未经修饰的 func1()功能。 @IsIllegal()装饰器结果在@app.route()装饰器注册后应用,并且在访问路由时从不调用。

可以这么说,装饰器是从内到外以相反的顺序应用的。反转装饰器:

@app.route(...,  methods = ['POST']  )
@IsIllegal
def func1():

现在IsIllegal(func1)的结果已由@app.route(...)注册,因此访问路由将最终调用decorated()