zoukankan      html  css  js  c++  java
  • Flask 之装饰器有关

     - 先记住一句话:自定义python装饰器时一定要记住使用@functools.wraps(func)修饰wrapper

    - 在Flask中使用装饰器遇到AssertionError: View function mapping is overwriting an existing...

     - 报错的大概意思就是存在相同的view,在flask中,如果定义了两个相同函数名的view,就会报这种报这种错误,例如:

     - 但是上例中的两个函数名分别是index和course,是不相同的,为什么会报这种错?

     - 我经过查找发现,这是因为python装饰器本质上就是函数的链式调用

     - 对于app.route这个方法而言,传入的方法都是external,而不是更深一层的index和course所以会报上面的错误

    解决方法

    在装饰external中添加@wraps(func)就可以正常运行了

    @functools.wraps(func)的作用就是保留原有函数的名称和docstring

  • 相关阅读:
    vue学习
    BBS登录注册技术点归纳
    BBS项目模态框的使用
    django后台管理系统
    java 之 jsp简介
    http 之 CORS简介
    web 之 session
    linux 之学习路线
    Ubuntu 之 win10更新ubuntu启动项消失
    Web 之 Cookie
  • 原文地址:https://www.cnblogs.com/wqzn/p/10235791.html
Copyright © 2011-2022 走看看