1. 项目中为啥要使用

那项目中的user_login_data中为啥要使用呢?

现在我们开始分析:

比如说,我们这俩方法都是视图函数,添加有路由:

Flask项目中为啥要使用functools_wraps装饰器?

那如果添加了路由,那就会出问题,因为一个视图函数不能被两个不同的路由进行装饰

如下:

Flask项目中为啥要使用functools_wraps装饰器?

一个路由对应一个函数。

那如果我们给之前的这个装饰器屏蔽掉: 如下:

Flask项目中为啥要使用functools_wraps装饰器?

有两个地方有到了user_login_data装饰器:

Flask项目中为啥要使用functools_wraps装饰器?Flask项目中为啥要使用functools_wraps装饰器?

运行:

Flask项目中为啥要使用functools_wraps装饰器?

哎,发现没报错。 这是因为这俩函数是在不同的蓝图下,函数的名字是带着蓝图的名字的。

那如果我给新闻蓝图添加另外一个方法:

Flask项目中为啥要使用functools_wraps装饰器?

再运行:

Flask项目中为啥要使用functools_wraps装饰器?

发现报错,报错信息:视图函数映射要覆盖一个已经存在的方法news.wrapper

其实说白了,就是要先对news.wrapper方法添加路由/comment/<int:news_id>然后又对nwes.wrapper方法添加路由/<int:news_id>

总结:

Flask项目中为啥要使用functools_wraps装饰器?

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-05-21
  • 2021-08-30
  • 2022-12-23
  • 2022-12-23
  • 2021-10-21
  • 2022-12-23
猜你喜欢
  • 2021-05-29
  • 2021-09-29
  • 2023-02-24
  • 2021-08-09
  • 2022-12-23
  • 2022-12-23
  • 2021-10-02
相关资源
相似解决方案