栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在Django中不使用模板的情况下返回JSON?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在Django中不使用模板的情况下返回JSON?

我认为这个问题对你想要的东西感到困惑。我想你实际上不是在尝试将HTML放入JSON响应中,而是想要替代地返回HTML或JSON。

首先,你需要了解两者之间的核心区别。HTML是一种表示形式。它比数据本身更多地涉及如何显示数据。JSON相反。它是纯数据-基本上是你拥有的某些Python(在这种情况下)数据集的Javascript表示形式。它仅充当交换层,使你可以将数据从应用程序的一个区域(视图)移动到应用程序的另一区域(你的Javascript),而这些区域通常是无法相互访问的。

考虑到这一点,你无需“渲染” JSON,并且不涉及任何模板。你只需将正在使用的所有数据(很可能是你作为上下文传递到模板的数据)转换为JSON。如果是自由格式数据,则可以通过Django的JSON库(simplejson)进行;如果是查询集,则可以通过序列化框架来完成。

simplejsonfrom django.utils import simplejsonsome_data_to_dump = {   'some_var_1': 'foo',   'some_var_2': 'bar',}data = simplejson.dumps(some_data_to_dump)

序列化

from django.core import serializersfoos = Foo.objects.all()data = serializers.serialize('json', foos)

无论哪种方式,你都可以将该数据传递到响应中:

return HttpResponse(data, content_type='application/json')

[编辑]在Django 1.6及更早版本中,返回响应的代码为

return HttpResponse(data, mimetype='application/json')


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/400459.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号