遍历表单并仅打印表单中包含数据的值

Iterate through form and print only values with data in form

我目前有一个表格

class StateForm(Form):
    court_info = TextField('Court Info', [validators.Optional()])
    court_rules = TextField('Court Rules', [validators.Optional()])
    jurisdictional_limit = TextField('Jurisdictional Limit', [validators.Optional()])
    complaint_form = TextField('Complaint Form', [validators.Optional()])
    governing_law = TextField('Governing Law', [validators.Optional()])
    more_info = TextField('More Info', [validators.Optional()])

当我收到请求时,我只希望它打印实际输入信息的字段。

@app.route("/update/<state>", methods=['POST'])
@login_required
def update_states(state):
    form = StateForm(request.form)
    for i in form.data:
        print(i)

我不想输入 if 语句的原因是我们会在表单中添加更多字段。

现在 i 打印字段名称而不是文本。我如何让它只打印其中有文本的字段?

K 想通了,因为它是字典必须这样做

for k, v in form.data.items():
    print(k, v)

自 Werkzeug 0.14 http://werkzeug.pocoo.org/docs/0.14/datastructures/#werkzeug.datastructures.MultiDict 和 Flask 版本 1.0.2 request.form 是一个 ImmutableMultiDict,派生自 MultiDict 以处理具有多个值的单个键(例如用于表单提交) .它的行为 类似于 字典,因此这将打印提交表单中每个键的第一个值,但要遵守有关打印能力的常见警告:

for k, v in request.form.items():
  print(k, v)