因此,在我的一个Django应用程序的视图中,该方法返回一个HttpResponse对象。
transform: scale
在我的应用程序测试模块(tests.py)中,我模拟了一个GET请求
json_str = json.dumps(json_dict)
return HttpResponse(json_str, content_type="application/json")
根据我在Django测试文档中读到的内容,响应将是一个Response对象,它与HttpResponse对象类似但不完全相同。那么如何从响应中检索json字符串?
答案 0 :(得分:2)
您应该查看JsonResponse这是HTTPResponse的子类。
从测试客户端,您可以检索具有属性内容的实际响应字符串:
>>> from django.test import Client
>>> c = Client()
>>> response = c.post('/login/', {'username': 'john', 'password': 'smith'})
>>> response.status_code
200
>>> response = c.get('/customer/details/')
>>> response.content
'<!DOCTYPE html...'
如果响应恰好包含json,则字符串将包含JSON。
测试工具还包括用于处理JSON的有用工具,如assertJSONEqual。
如果要将响应字符串转换为实际的python字典,可以使用
执行此操作import json
response = json.loads(c.get('/myjsonview/').content)
答案 1 :(得分:1)
您可以像这样检索响应json:
import json
response = json.loads(c.get('/url/to/view/').content)