На данный момент реализовано 3 select multiple с возможностью выбора нужных наименований из столбцов.
Все работает корректно.
Подскажите, пожалуйста, как аналогично реализовать возможность выбора самих столбцов?
index.html
<label for="columns"> </label>
<select type="text" id = "columns" name ="columns" class="form-control selectpicker" data-live-search="true" multiple>
<option value="fact_year">Год</option>
<option value="fact_january">Январь</option>
<option value="fact_february">Февраль</option>
<option value="fact_march">Март</option>
<option value="fact_q1">1 Квартал</option>
<option value="fact_aplril">Апрель</option>
<option value="fact_june">Июнь</option>
<option value="fact_q2">2 Квартал</option>
<option value="fact_jule">Июль</option>
<option value="fact_august">Август</option>
<option value="fact_september">Сентябрь</option>
<option value="fact_q3">3 Квартал</option>
<option value="fact_october">Октябрь</option>
<option value="fact_november">Ноябрь</option>
<option value="fact_december">Декабрь</option>
<option value="fact_q4">4 Квартал</option>
<option value="fact_annual_values">Итог</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.getlist("year")
year = [int(i) for i in request.form.getlist("year") if i.isdigit()]
print(year)
station = request.form.getlist("station")
station = [str(i) for i in request.form.getlist("station")]
print(station)
indicators = request.form.getlist("indicators")
indicators = [str(i) for i in request.form.getlist("indicators")]
print(indicators)
columns = request.form.getlist("columns")
columns = [i for i in request.form.getlist("columns")]
# Форматируем даты в соответсвии с форматом в базе данных
# Запрос к БД с использованием параметров дат
cur = conn.cursor()
cur.execute("SELECT * FROM fact_indicators WHERE fact_year = ANY(%s) AND fact_indicators = ANY(%s) AND fact_station_name = ANY(%s);",(year, indicators, 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)