我目前有一份表格
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)