AssertionError:视图函数映射正在覆盖现有的端点函数

时间:2015-03-02 21:36:28

标签: python python-2.7 flask

我不知道如何解决当我使用Flask时从Python代码中获得的这个问题:

@app.route('/addEvent/', methods=['POST'])
def addEvent():

@app.route('/deleteEvent/', methods=['POST'])
def addEvent():

错误讯息:

AssertionError: View function mapping is overwriting an existing endpoint function: addEvent
21:50:57 web.1  | Traceback (most recent call last):

我尝试了解此页面:http://flask.pocoo.org/docs/0.10/patterns/viewdecorators/

此帖AssertionError: View function mapping is overwriting an existing endpoint function: main

但我不明白。有人可以告诉我如何为我的代码解决这个问题吗?

1 个答案:

答案 0 :(得分:6)

重命名第二个功能;它也称为addEvent;我建议改为deleteEvent

@app.route('/deleteEvent/', methods=['POST'])
def deleteEvent():

端点名称通常取自您使用@app.route()修饰的函数;您还可以通过告诉装饰者您想要使用的名称来明确地为您的端点指定一个不同的名称:

@app.route('/deleteEvent/', methods=['POST'], endpoint='deleteEvent')
def addEvent():

这将让你坚持使用相同的名称的功能。在这种特定情况下,不是一个好主意,因为一个函数替换了另一个函数,而第一个函数只留在Flask URL映射中。

另见Flask.route() documentation

  

端点 - 已注册网址规则的端点。 Flask本身将视图函数的名称视为端点。