Привет, я очень новичок в программировании на Python. В настоящее время я разрабатываю небольшое приложение, используя колбу для пользователей, чтобы представить данные. Форма генерируется динамически. Я не использую WTForms
Вот часть HTML, которая генерирует форму
{% if message %}
{% for data in message %}
<tr>
<th><input type="text" name="matchnumber" value="{{data.get('matchno')}}" readonly></th>
<th>{{data.get('team1')}}</th>
<th>vs</th>
<th>{{data.get('team2')}}</th>
<th><select name="winner">
<option value="{{data.get('team1')}}">{{data.get('team1')}}</option>
<option value="{{data.get('team2')}}">{{data.get('team2')}}</option>
</select></th>
<th><input type="number" placeholder="Point" name="point" value="{{request.form.point }}" required min="500" max="1000"></th>
</tr>
{% endfor %}
{% endif %}
<table>
форма генерируется как ожидалось. Он будет иметь минимум 8 столбцов, он также может быть больше в зависимости от ответа, который он получает из базы данных.
Но настоящая проблема возникает, когда я пытаюсь получить данные формы. Данные, которые я получаю из формы, снова будут сохранены в базе данных.
Это часть Python, откуда я пытаюсь обработать ответ
result=request.form
result2=result.to_dict(flat=False)
for key,value in result2.items():
print(key,value)
проблема в том, что первая строка дает данные ImmutableMultiDict, и я не могу перебирать их, и даже после преобразования их в правильный словарь я не могу правильно извлечь каждое поле
переменная результата имеет вывод как
ImmutableMultiDict([('matchnumber', '1'), ('matchnumber', '2'), ('matchnumber', '3'), ('matchnumber', '4'), ('matchnumber', '5'), ('matchnumber', '6'), ('matchnumber', '7'), ('matchnumber', '8'), ('winner', 'Russia'), ('winner', 'Egypt'), ('winner', 'Morocco'), ('winner', 'Portugal'), ('winner', 'France'), ('winner', 'Argentina'), ('winner', 'Peru'), ('winner', 'Croatia'), ('point', '800'), ('point', '800'), ('point', '800'), ('point', '800'), ('point', '800'), ('point', '800'), ('point', '800'), ('point', '800')])
после преобразования в словарь переменная result2 имеет это в качестве вывода
{'matchnumber': ['1', '2', '3', '4', '5', '6', '7', '8'], 'winner': ['Russia', 'Egypt', 'Morocco', 'Portugal', 'France', 'Argentina', 'Peru', 'Croatia'], 'point': ['800', '800', '800', '800', '800', '800', '800', '800']}
когда я перебираю элементы result2, это генерируемый вывод
matchnumber ['1', '2', '3', '4', '5', '6', '7', '8']
winner ['Russia', 'Egypt', 'Morocco', 'Portugal', 'France', 'Argentina', 'Peru', 'Croatia']
point ['800', '800', '800', '800', '800', '800', '800', '800']
Точная проблема, с которой я сталкиваюсь, заключается в том, что я не могу перебирать список одновременно, я попытался найти и найти решения относительно того, как получить точные данные из ImmutableMultiDic, но я не получил хорошего результата.
Пожалуйста, кто-нибудь может предложить мне лучший способ получить данные из формы. Вся форма будет динамичной, так как она будет меняться в зависимости от даты обновления списка совпадений. Я не использую ORM, я использую только сырой SQL для обработки данных
Заранее спасибо