Я довольно долго кусаю ногти на этом. В моем приложении Flask у меня есть база данных продуктов, для которой в приложении у меня есть страница, которая запрашивает каждый столбец продукта в таблице.
Например, у меня будет продукт 1234
, для которого я мог бы просмотреть детали (например, столбцы базы данных) в example.com/items/1234
, которые дадут мне следующее:
<div class="container">
<div class="content">
<a href="/item">Back</a>
<table class="table">
<thead>
<tr>
<th>#</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">Detail-1<th>
<td>Example</td>
</tr>
<tr>
<th scope="row">Detail-2</th>
<td>Example</td>
</tr>
То, с чем я борюсь, следующее:
Я хотел бы добавить новые продукты с одинаковым стилем таблицы. Для этого я создал форму следующего вида:
class NewArticleForm(FlaskForm):
detail_1 = StringField("Detail-1")
detail_2 = IntegerField("Detail-2")
...
submit = SubmitField("Submit")
Теперь я полностью потерял, как настроить внешний вид формы в шаблоне за пределами {{ wtf.quick_form(form) }}
. Я пробовал следующее:
<form method="POST">
<table class="table">
{% for name in form %}
<tr>
<th scope="row">{{ name.label }}</th>
<td>{{ name }}</td>
</tr>
{% endfor %}
</table>
</form>
Таблица выглядит хорошо (по крайней мере), но запрос не отправляется правильно, я полагаю. Страница правильно загружается с помощью "POST /url HTTP/1.1"
, но, похоже, она не проходит правильно.
Что я имею в виду, так это то, что, хотя запрос отправляется правильно, я вижу, что я запускаю приложение через сервер Flask. Однако кажется, что в базу данных ничего не передается. Страница просто перезагружается с введенными данными, все еще в полях и ничего не передается в базу данных. Если я просто использую wtf.quick_form
, тогда данные будут правильно отправлены в базу данных.
Итак, как я могу правильно настроить внешний вид формы и/или решающий шаг, я пропустил?