Как создать массив с флажками во Flask - PullRequest
0 голосов
/ 16 ноября 2018

Я начинаю в колбе, поэтому у меня много вопросов по этому поводу. И один из них - как создать массив на основе имени входного флажка? Другими словами, python будет следовать логике: для каждого типа «флажок», какие из них были заполнены?

У меня есть эти коды: index.html

{% block content %}


<form method="POST" action="">
<div class="card" style="margin:50px 0">
    <div class="card-header"><b>Letters</b></div>

    <ul class="list-group list-group-flush">
    <li class="list-group-item">A
    <label class="switch ">
    <input type="checkbox" name="A" class="danger">
    <span class="slider round"></span>
    </label>
    </li>
    <li class="list-group-item">B
    <label class="switch ">
    <input type="checkbox" name="B" class="danger">
    <span class="slider round"></span>
    </label>
    </li>
    <li class="list-group-item">C
    <label class="switch ">
    <input type="checkbox" name="C" class="danger">
    <span class="slider round"></span>
    </label>
    </li>
    </ul>
    <button type="submit">Go</button>
</div>
</form>

{% endblock content %}

и funcs.py

from flask import Flask, render_template, url_for, redirect, request

app = Flask(__name__)

app.config['SECRET_KEY'] = '0000'


@app.route('/')
def index():
    return render_template('index.html')

if __name__ == '__main__':
    app.run(debug=True)

Когда пользователь установил флажки с именами «A» и «C», python создает массив и отображает его вскоре после отправки пользователем.

checked = ["A", "C"]

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Когда POST-запрос отправляется на сервер фляги, вы можете получить содержимое формы из request.form. это словарь, основанный на запросе POST.

При установленном флажке, если флажок установлен, ввод name в <input type="checkbox" name="A" class="danger"> будет в этом словаре. Поэтому вы можете установить флажок следующим образом:

if "A" in request.form:
    checked.append("A")  # You can of course append any arbitrary value
0 голосов
/ 16 ноября 2018

Ваш HTML-код движется в правильном направлении, но Flask внес несколько небольших изменений, чтобы эффективно справиться с этим.

Сначала установите текущее значение атрибута name в атрибут value.Это будет определять значения Flask тянет во время формы сообщения.Во-вторых, установите для атрибута name общее значение.

<input type="checkbox" value="A" class="danger" name='my_checkbox'>
<input type="checkbox" value="B" class="danger" name='my_checkbox'>
<input type="checkbox" value="C" class="danger" name='my_checkbox'>

После того, как HTML настроен как таковой, вы можете использовать метод getlist из модуля запросов Flask.

print(request.form.getlist('my_checkbox'))
>>> ['A', 'C']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...