python - 从 Django View 中的 HttpResponse 检索 JSON

标签 python json django

因此,在我的一个 Django 应用程序的 View 中,该方法返回一个 HttpResponse 对象。

json_str = json.dumps(json_dict)
return HttpResponse(json_str, content_type="application/json")

在应用程序的测试模块 (tests.py) 中,我模拟了 GET 请求

def setUp(self):
    c = Client()
    response = c.get('/url/to/view/')

根据我在 Django 测试文档中读到的内容,响应将是一个 Response 对象,它与 HttpResponse 对象类似但不完全相同。那么如何从响应中检索 json 字符串呢?

最佳答案

您应该看看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)

关于python - 从 Django View 中的 HttpResponse 检索 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30556890/

相关文章:

python - Pandas 数据框按日期排序

python - 将文本文档坐标 'x, y' 转换为浮点列表对象

python - 替换正则表达式中的字符

python - Pandas 删除括号之间的字符

json - 如何将字典转换为不带空格和换行符的json字符串

django - 选择一个有效的选择。 2.6 不是可用的选择之一

php - 使用 PHP 和 jSON 从 MySQL 获取 UIImage

Android 提高了使用 JSON 数据填充表布局时的性能

python - 始终将用户包含在 django 模板上下文中

python - 如何在 "no module named xyz"错误上获得更多诊断输出?