发送表单作为请求属性

时间:2019-11-19 15:03:11

标签: python flask wtforms

我想测试我的WTForm。我正在发送POST请求,我需要将表单作为参数传递。我创建了ImmutableMultiDict的Form源,它看起来与手动测试代码时传递给方法的数据完全一样。我正在发送请求:

resp = t_client.post(url_for('my_page'), data=({"form":source}))

但是在到达终点之前,我得到了一个错误:

Traceback (most recent call last):   File
 "test.py",
 line 69, in test
     resp = t_client.post(url_for('url_for('my_page'), data=({"form":source}))   File
 "lib/python3.7/site-packages/werkzeug/test.py",
 line 1039, in post
     return self.open(*args, **kw)   File "/lib/python3.7/site-packages/flask/testing.py",
 line 215, in open
     builder = EnvironBuilder(self.application, *args, **kwargs)   File "lib/python3.7/site-packages/flask/testing.py",
 line 86, in __init__
     super(EnvironBuilder, self).__init__(path, base_url, *args, **kwargs)   File "lib/python3.7/site-packages/werkzeug/test.py",
 line 422, in __init__
     self._add_file_from_data(key, value)   File "lib/python3.7/site-packages/werkzeug/test.py",
 line 474, in _add_file_from_data
     self.files.add_file(key, **value) TypeError: add_file() got an unexpected keyword argument 'title'

title是我来源的第一个字段。来源打印为:

ImmutableMultiDict([('title', 'New title'),...])

这就是我进一步需要的,并且在端点实现中读为:

form = request.form

正确的传递方式是什么?

0 个答案:

没有答案