Все работает нормально в flask, но когда я добавляю следующий код, это дает ошибку - PullRequest
0 голосов
/ 07 апреля 2020

Ниже мой flask код, и он отлично работает

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 (последний вызов был последним): файл "app.py", строка 19, в поиске по умолчанию (search_query): файл "C: \ Users \ khadush \ AppData \ Local \ Programs \ Python \ Python38-32 \ lib \ site-packages \ flask \ app.py ", строка 1315, в декораторе self.add_url_rule (правило, конечная точка, параметры f, **) "C: \ Users \ khadush \ AppData \ Local \ Programs \ Python \ Python38-32 \ lib \ site-packages \ flask \ app.py", строка 98, в wrapper_func возвращает f (self, * args, ** kwargs) Файл "C: \ Users \ khadush \ AppData \ Local \ Programs \ Python \ Python38-32 \ lib \ site-packages \ flask \ app.py", строка 1282, в add_url_rule поднять ошибку AssertionError (AssertionError: функция просмотра отображение переписывает существующую функцию конечной точки: поиск

Ответы [ 3 ]

0 голосов
/ 07 апреля 2020
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

Пожалуйста, удалите старую функцию поиска, которая отображается в / test. Также см. AssertionError: Отображение функции View переписывает существующую функцию конечной точки: main

0 голосов
/ 07 апреля 2020

Ваш код содержит некоторые ошибки, поэтому он выдает ошибку. Это не связано с функцией множественного поиска, поскольку у вас ее нет. Я внес изменения ниже, и это сработало.

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()


Подробнее об этих ошибках вы можете узнать здесь: Что делать, если __name__ == "__main__": do?

Надеюсь, это поможет!

0 голосов
/ 07 апреля 2020

Как четко указано в ошибке.

При отображении функции View перезаписывается существующая функция конечной точки: search

Это означает, что уже существует функция с именем 'search'. Я рекомендую вам изменить имя функции следующим образом:

@app.route("/test")
def test():
    return "Hello"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...