我来自wtforms:
ImmutableMultiDict([('csrf_token', u'1422930083.22##139a472d31a0bbb37c25fee616b8b5bd5a38e37a'), ('27', u'y'), ('type', u'job')])
我能做到
print request.form.getlist('type')
获取类型值。但27
怎么样?名称可以更改,因此另一种形式可以是25
。
如何访问该输入字段? ImmutableMultiDict可以转换吗?我无法在ImmutableMultiDict
TypeError: 'ImmutableMultiDict' objects are immutable
答案 0 :(得分:1)
这种方式适合我:
data_form = {}
for fieldname, value in request.form.items():
data_form[fieldname] = value
data_form.pop("csrf_token", None)
data_form.pop("type", None)
print data_form
答案 1 :(得分:0)
也许这会有所帮助。通常我不使用ImmutableMultiDict,所以也许有更好的方法。但假设dict总是有3个元素,其中两个是'csrf_token'和'type',你可以获得第三个未知密钥的名称,如下所示:
from werkzeug.datastructures import ImmutableMultiDict
imd = ImmutableMultiDict([('csrf_token', u'1422930083.22##139a472d31a0bbb37c25fee616b8b5bd5a38e37a'),
('27', u'y'),
('type', u'job')])
for k in imd:
if k not in ['csrf_token','type']:
last_key = k
print(last_key)
break
print(imd[last_key])
结果是:
27
y
请注意,需要循环,因为dicts是无序的,所以你永远不知道dict中的键的存储顺序。