Прохождение маршрута колбы с ошибкой возврата параметра - PullRequest
1 голос
/ 05 мая 2019

Я новичок во Фляске. У меня проблема с моим кодом. Я хочу, чтобы мое приложение удалило указанный файл в моем каталоге.

Во-первых, это мой код для отображения всех файлов в указанном каталоге в виде списка:

@app.route('/dirfile')
   def dirfile():
       path = './static/pickle/'
       lst = os.listdir(path)
       return render_template('dirfile.html', lst=lst)

Вот мой код dirfile.html, показывающий все файлы в каталоге.

 {% for file_name in lst %}
    <ul class="list-group ">
      <li class="list-group-item ">
        <div class="row">
          <div class="col">
            {{ file_name }}
          </div>
          <div class="col">
            <a
              href="{{ url_for('deldir/{{file_name}}') }}"
              class="btn btn-danger btn-sm float-right"
              >Delete</a
            >
          </div>
        </div>
      </li>
    </ul>
  {% endfor %}

Если вы заметили, я добавил кнопку удаления, чтобы выполнить удаление в указанном файле в списке.

Моя функция удаления:

@app.route('/deldir/<string:file_name>')
   def deldir(file_name):
       path = './static/pickle/'
       base = file_name
       fullpath = path + base
       os.remove(fullpath)
       return redirect(url_for('dirfile'))

Но он вернул следующую ошибку:

werkzeug.routing.BuildError: Не удалось создать URL-адрес для конечной точки 'deldir / {{file_name}}'. Вы имели в виду «dirfile» вместо этого?

1 Ответ

1 голос
/ 05 мая 2019

url_for() требуется имя функции, а не URL в route().

Ваша функция имеет имя deldir и имеет параметр с именем file_name, поэтому у вас есть

 url_for('deldir', file_name=file_name)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...