Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 遍历表单并仅打印表单中包含数据的值_Python_Flask_Wtforms - Fatal编程技术网

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

Python 遍历表单并仅打印表单中包含数据的值,python,flask,wtforms,Python,Flask,Wtforms,我现在有一张表格 class StateForm(Form): court_info = TextField('Court Info', [validators.Optional()]) court_rules = TextField('Court Rules', [validators.Optional()]) jurisdictional_limit = TextField('Jurisdictional Limit', [validators.Optional()]

我现在有一张表格

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)
@app.route(“/update/”,方法=['POST']))
@需要登录
def更新_状态(状态):
form=StateForm(request.form)
对于form.data中的i:
印刷品(一)
我不想键入if语句的原因是,万一我们在表单中添加了更多字段


现在,
i
打印字段的名称,但不打印文本。我如何让它只打印包含文本的字段呢?

K解决了这个问题,因为它是一本字典,必须这样做

for k, v in form.data.items():
    print(k, v)
从Werkzeug 0.14和Flask 1.0.2版开始,request.form是一个不可修改的MultiDict,从MultiDict派生,用于处理具有多个值的单个键(例如,用于表单提交)。它的行为类似于一个字典,因此它将在提交的表单中打印每个键的第一个值,并遵守有关打印能力的常见警告:

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