Как заполнить выпадающий список при загрузке через flask? - PullRequest
0 голосов
/ 26 февраля 2020

Что я пробовал:
Вот мой test.html, который получает параметры (список) из test.py

            <select>
            <div class="test">
                <option selected="selected"> Select </option>
                {% for option in options %}
                <option value="{{ option }}">{{ option }}</option>
                {% endfor %}
            </select>
                </div>    

test.py

            @app.route('/test', methods=["GET"])
            @login_required
            def transactions_view():
                options = ["0","7","14","30"]
                return render_template("test.html", options=options)

Есть ли Есть ли другие способы обновить выпадающий список?

Вышеуказанный html и py-файл дают требуемый выпадающий список,
Но я не могу присвоить атрибут select выше html?

1 Ответ

0 голосов
/ 26 февраля 2020

Запишите это в классе, и это может быть сделано легко. Создайте форму:

class OptionForm(FlaskForm):
    options = SelectField('Options', choices = [('0', '0'), ('7', '7'), ('14', '14'), ('30', '30')])
    submit = SubmitField('Submit')

В функции:

@app.route('/test', methods=["GET"])
@login_required
def transactions_view():
    form = OptionForm()
    if form.validate_on_submit():
        optionVal = form.options.data
    return render_template("test.html", form=form)

И HTML будет:

{% extends "base.html" %}

{% block content %}
    <form action="" method="post">
        {{ form.hidden_tag() }}
        <p>
            {{ form.options.label }}<br>
            {{ form.options(size=32) }}
        </p>
        <p>{{ form.submit() }}</p>
    </form>
{% endblock %}

Здесь ' optionVal 'будет содержать значение, выбранное в настройках.

...