werkzeug.routing.BuildError: Не удалось создать URL для конечной точки «результат». Вы забыли указать значения ['search']? - PullRequest
0 голосов
/ 02 мая 2020

Я хочу создать функцию поиска, я добавлю ее позже, теперь я просто обеспокоен своими URL-адресами. Когда я ищу, я хочу, чтобы вещь, которую я искал в URL. Но каждый раз, когда я получаю эту ошибку: werkzeug.routing.BuildError: Не удалось построить URL для конечной точки «результат». Вы забыли указать значения ['search']?

это мой python файл

@app.route("/search")
def search():
    search = request.form.get("search")
    return redirect(url_for('result', search=search))

@app.route("/result/<search>")
def result(search):
    return render_template("result.html")

А вот мой HTML с формой

     <form class="form-inline my-2 my-lg-0" action="{{ url_for('search')}}">
        <input class="form-control mr-sm-2" name="search" placeholder="Search">
        <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
    </form>

1 Ответ

0 голосов
/ 02 мая 2020

Причина в том, что search равно None

Вы должны выполнить поиск следующим образом:

HTML

<form method='GET' action='/search'>
<input type='text' name='search'>
<input type='submit'>
</form>

Python

@app.route('/search')
def search():
    if 'search'  not in request.args:
       #return normal page
    #Do stuff
    return redirect(url_for('result',search=request.args['search']))

@app.route('/result/<search>')
def result(search):
   #Show the result
   return search
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...