一尘不染

flask.request.form中的动态表单字段

flask

我无法弄清楚request.formFlask中的对象是如何填充的。 该文档说,它充满了来自POST或PUT请求的已解析表单数据,但是我的表单是动态的,因此我不必知道发送POST请求时存在哪些字段-尽管我要确保我从这些请求中添加信息字段到数据库。

表单中的某些字段始终存在,但是从大约60个列表中还会有任意数量的其他字段。我应该如何确定请求中的哪些其他字段以及如何获取来自他们的数据?

编辑:我的特定问题已解决,但仍然值得询问如何填充request.form词典。我发现了一种很难的方法,即如果未选中复选框输入,则不会在其名称下向字典添加任何键,并且尝试从字典中获取不存在的键的值会导致相当混乱和神秘的HTTP 400 BAD REQUEST错误。


阅读 595

收藏
2020-04-06

共1个答案

一尘不染

request.form返回一个MultiDict对象。基本上,这意味着对于1个键,你可以有多个值。如果要测试表单POST的外观,只需执行以下快速打印语句

f = request.form
for key in f.keys():
    for value in f.getlist(key):
        print key,":",value
2020-04-06