zoukankan      html  css  js  c++  java
  • AssertionError: View function mapping is overwriting an existing endpoint function: insertCase

    首先,理解这个错误是什么意思,以及出现的原因:

    使用Flask定义URL的时候,如果出现"AssertionError: View function mapping is overwriting an existing endpoint function"这个异常信息,就说明定义了多个同名的视图函数,只需要改成不同的函数名即可。

    这是为什么呢?

    原来flask中url跟视图函数并不是直接对应的,而是有一个中间者-endpoint。

    三者之间的关系是这样的:

    ```

    url---->endpoint---->view_function

    ```

    它们是一对一的关系,在注册add_url_rule的时候,如果不指定endpoint,那么endpoint就会默认为函数名字,如果同一个endpoint于多个url注册的话,就会发生冲突,从而抛出异常。

     

    我出错误的原因:

    在项目的初始文件 init中

    我导入了views模块,这相当于会执行views中的代码(变量定义,视图函数等)

    然后我在views模块想要调试的时候,就相当于再次定义一样的变量,视图函数,所以就会出现上面的错误,即定义了多个同名的视图函数

    解决办法:

    这里把init中这句代码注释掉就可以了

     再次单独运行views文件即可正常启动服务了

     

    参考:
    理解endpoint是什么:
    Flask中'endpoint'(端点)的理解(译文,不错的)

    https://www.jianshu.com/p/3201a8f4dc56

  • 相关阅读:
    Python电影投票系统
    Python打印一个等边三角形
    打印正直角三角形
    MySQL指令
    MySQL安装 8.0.15版本
    局部变量 全局变量
    目录
    格式化输出
    转义字符
    ffmpeg 从内存中读取数据(或将数据输出到内存)
  • 原文地址:https://www.cnblogs.com/kaerxifa/p/11430731.html
Copyright © 2011-2022 走看看