EDITED. Мой первоначальный вопрос был недостаточно ясен. Я хочу разрешить пользователю передавать значения в TextField в wtforms, после чего введенное значение появляется после их добавления. Это позволит пользователю передать несколько значений до того, как вы нажмете конечную кнопку «Sumbit» для всех значений, которые были первоначально введены.Передача данных из текстового поля в wtform & display в браузере
Я нашел this question за то, что что-то сделал с введенным текстом, и это то, что я пробовал. Код
Мой Python:
from flask import Flask, request, render_template, redirect
from wtforms import TextField, Form, SubmitField
def redirect_url(default='index'):
return request.args.get('next') or \
request.referrer or \
url_for(default)
class RegionForm(Form):
field = TextField('Region')
Submit = SubmitField('AddRegion')
fieldList = []
def main():
app = Flask(__name__)
@app.route('/region/', methods=['GET'])
def region():
form = RegionForm(request.form)
return render_template("region.html",
form=form)
@app.route('/add/', methods=['POST'])
def add():
request.form['fieldList'].append(request.form['field'])
return redirect(redirect_url())
app.run(debug=True)
Мой HTML код:
<form action="/add/" method="Post">
{% for field in form %}
<tr>
<th>{{ field.label }}</th>
<td>{{ field }}</td>
</tr>
{% endfor %}
</form>
{% for item in form.fieldList %}
{{ item }}
{% endfor %}
Но после того, как я ввожу текст и нажмите кнопку "AddRegion", я получаю следующее сообщение об ошибке: The browser (or proxy) sent a request that this server could not understand.
Однако, если Я прокомментирую строку request.form['fieldList'].append(request.form['field'])
, затем происходит перенаправление, но текст не был добавлен в скрытый список формы. Как мне и добавить текст в список и redirect назад на исходную страницу, так что пользователь может добавить еще текст? Похоже, что должна быть ошибка только с этой строкой, потому что все работает отлично.
Как я могу позволить пользователю динамически добавлять текст в поле, а затем показывать это поле в браузере? Затем, после того как были добавлены полные области областей, я хочу, чтобы потом получить этот список для последующей обработки в отдельной функции.
Хорошая добыча, но я все равно получаю ту же ошибку. Если я прокомментирую строку с 'request.form ['fieldList'] ...', тогда она работает нормально, но не добавляет вход в скрытый список в форме, как я этого хочу. – unasalusvictis