@Atroshchenko-Dima
Python, postgres

Как передать значения из select multiple в переменную?

После выбора нескольких лет из выпадающего списка и нажатии кнопки "принять" запрос принимает только один год, вместо массива. Подскажите, пожалуйста, что нужно исправить.

index.html
<form method ="post" action="/">
    <label for="year[]"></label>
    <select name ="year[]" multiple="multiple">
      <option value="2014">2014</option>
      <option value="2015">2015</option>
      <option value="2016">2016</option>
      <option value="2017">2017</option>
      <option value="2018">2018</option>
      <option value="2019">2019</option>
      <option value="2020">2020</option>
      <option value="2021">2021</option>
      <option value="2022">2022</option>
      <option value="2023">2023</option>
    </select><br><br>


app.py
@app.route("/", methods=["GET","POST"])
def index():
    cur = conn.cursor()
    cur.execute("SELECT * FROM fact_indicators;") 
    rows = cur.fetchall()
    cur.close
    
    if request.method == "POST":
      # Получаем промежуток дат из формы
        year = request.form["year[]"]
        print(year)
        station = request.form["station"]
        print(station)
        # Форматируем даты в соответсвии с форматом в базе данных
        # Запрос к БД с использованием параметров дат
        cur = conn.cursor()
        cur.execute("SELECT * FROM fact_indicators WHERE fact_year IN (%s) AND fact_station_name = %s;",(year,station)) 
        rows = cur.fetchall()
        cur.close
        # Отоброжение полученных данных на странице
        return render_template("index.html", rows=rows, form_visible=True)
    else:
        return render_template("index.html", rows=rows, form_visible=False)
  • Вопрос задан
  • 320 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Flask
Седой и строгий
request.form.getlist(field_name)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы