Как маршрутизировать несколько HTML-файлов в одном каталоге, вводя в качестве переменной

#python #flask

#python #flask

Вопрос:

Внутри моей папки templates есть другая папка с именем templates / destinations. Внутри папки «назначения» у меня есть 8 HTML-файлов. Когда я попытался передать каждое назначение в качестве переменной, как в следующем коде, я получаю ошибку 404. Что не так с моим кодом?

demo.py как следует из flask import Flask, render_template

 @app.route('/destinations/{city}', methods = ['GET'])
def destinations(city):
    destn = 'destinations/' city '.html'
    return render_template(destn)
 

код навигации html следующим образом

 <ul class="nav-dropdown">
      <li><a href="destinations/london">London</a></li>
      <li><a href="destinations/ny">New York</a></li>
      <li><a href="destinations/paris">Paris</a></li>
 

Комментарии:

1. Каково значение «city» в вашем методе (используйте print или pdb, чтобы выяснить)? Кроме того, каково конечное значение destn прямо перед возвратом? Ваш код выглядит нормально для меня.

2. @Ludo21South если вы посмотрите на код, который у них есть {city} , а <city> не в маршруте.

3. Хорошо заметил @CodeLikeBeaker . Я пропустил это.

Ответ №1:

Замените фигурную скобку вместо:

 @app.route('/destinations/{city}', methods = ['GET'])
 

Изменить на

 @app.route('/destinations/<city>', methods = ['GET'])
 

Документ: https://flask.palletsprojects.com/en/1.1.x/quickstart/#variable-rules