在flask中,一切都正常工作,但当我添加以下代码时,它给出了错误

2024-09-28 01:30:20 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是我的烧瓶代码,工作正常

from flask import Flask

app = Flask(__name__)

@app.route("/")
@app.route("/hello")
def hello_world():
    return "Hello, World!"

@app.route("/test")
def search():
    return "Hello"

if __name__ == "__main__":
    app.run()

但是当我添加此代码时

@app.route("/test/<search_query>") 
def search(search_query):   
    return search_query

它给出了以下错误

Traceback (most recent call last): File "app.py", line 19, in def search(search_query): File "C:\Users\khadush\AppData\Local\Programs\Python\Python38-32\lib\site-packages\flask\app.py", line 1315, in decorator self.add_url_rule(rule, endpoint, f, **options) File "C:\Users\khadush\AppData\Local\Programs\Python\Python38-32\lib\site-packages\flask\app.py", line 98, in wrapper_func return f(self, *args, **kwargs) File "C:\Users\khadush\AppData\Local\Programs\Python\Python38-32\lib\site-packages\flask\app.py", line 1282, in add_url_rule raise AssertionError( AssertionError: View function mapping is overwriting an existing endpoint function: search


Tags: inpyappflasksearchreturnlocaldef
3条回答

您的代码包含一些错误,这就是为什么它会给您一个错误。它与多重搜索功能无关,因为您没有它。我做了下面的更改,它成功了

from flask import Flask

app = Flask(__name__)

@app.route("/") 

@app.route("/hello")

def hello_world(): 
  return "Hello, World!"

@app.route("/test") 
def search(): 
   return "Hello"

if __name__ == "__main__":
  app.run()


您可以在此处进一步了解这些错误: What does if __name__ == "__main__": do?

希望这有帮助

正如错误中明确提到的那样

View function mapping is overwriting an existing endpoint function: search

这意味着,已经有一个名为“搜索”的函数。我建议您更改函数名,如下所示:

@app.route("/test")
def test():
    return "Hello"
from flask import Flask
app = Flask('name')

@app.route("/")
@app.route("/hello")
def hello_world():
    return "Hello, World!"

@app.route("/test")
def search(): return "Hello"

@app.route("/test/")
def search(search_query):  # Duplicate route for /test (hence the error function mapping is overwriting an existing endpoint)
    return search_query

请删除映射到/测试的旧搜索功能。 另请参阅AssertionError: View function mapping is overwriting an existing endpoint function: main

相关问题 更多 >

    热门问题