【发布时间】:2015-05-04 09:42:42
【问题描述】:
我在 Flask 应用程序中有代码在请求中使用 JSON,我可以像这样获取 JSON 对象:
Request = request.get_json()
这一直很好,但是我正在尝试使用 Python 的 unittest 模块创建单元测试,但我很难找到一种方法来发送带有请求的 JSON。
response=self.app.post('/test_function',
data=json.dumps(dict(foo = 'bar')))
这给了我:
>>> request.get_data()
'{"foo": "bar"}'
>>> request.get_json()
None
Flask 似乎有一个 JSON 参数,您可以在其中设置 json=dict(foo='bar') 在 post 请求中,但我不知道如何使用 unittest 模块。
【问题讨论】:
-
request.data包含什么?通常当由于输入错误导致 json 解析失败时,它会静默失败并返回None,因此原始输入数据可能不是 json。 -
>>> request.get_data() '{"foo": "bar"}' >>> request.get_json() 无 我不太确定flask的请求是如何工作的,但似乎分离数据和json,我不知道如何将信息发送到json而不是数据,如果这有意义的话。
-
我认为是内容类型标头,尝试将它们设置为应用程序/json。 force 参数也很有帮助,但您可能不想去那里只是为了让单元测试通过,最好更改 mime
标签: python json flask python-unittest