Django 查询数据库返回JSON格式数据

简介: 和前端交互全部使用JSON,如何将数据库查询结果转换成JSON格式

和前端交互全部使用JSON,如何将数据库查询结果转换成JSON格式


返回多条数据


示例


importjsonfromdjango.httpimportHttpResponsefromdjango.coreimportserializersdefdb_to_json(request):
scripts=Scripts.objects.all()[0:1]
json_data=serializers.serialize('json', scripts)
returnHttpResponse(json_data, content_type="application/json")


返回结果


[{
"fields": {
"script_content": "abc",
"script_type": "1"    },
"model": "home_application.scripts",
"pk": "03a0a7cf-567a-11e9-8566-9828a60543bb"}]


功能实现了,但是我需要返回一个约定好的JSON格式,查询结果放在 data 中


 {"message": 'success', "code": '0', "data": []}


代码如下:


importjsonfromdjango.httpimportHttpResponsefromdjango.coreimportserializersdefdb_to_json2(request):
# 和前端约定的返回格式result= {"message": 'success', "code": '0', "data": []}
scripts=Scripts.objects.all()[0:1]
# 序列化为 Python 对象result["data"] =serializers.serialize('python', scripts)
# 转换为 JSON 字符串并返回returnHttpResponse(json.dumps(result), content_type="application/json")


调用结果


{
"message": "success",
"code": "0",
"data": [{
"fields": {
"script_content": "abc",
"script_type": "1"        },
"model": "home_application.scripts",
"pk": "03a0a7cf-567a-11e9-8566-9828a60543bb"    }]
}


有点难受的是,每条数据对象包含 fields,model,pk三个对象,分别代表字段、模型、主键,我更想要一个只包含所有字段的字典对象。虽然也可以处理,但还是省点性能,交给前端解析吧。


返回单个对象


代码:


fromdjango.forms.modelsimportmodel_to_dictfromdjango.httpimportHttpResponseimportjsondefobj_json(request):
pk=request.GET.get('script_id')
script=Scripts.objects.get(pk=pk)
# 转为字典类型script=model_to_dict(script)
returnHttpResponse(json.dumps(script), content_type="application/json")


返回JSON:


{
"script_id": "1534d8f0-59ad-11e9-a310-9828a60543bb",
"script_content": "3",
"script_name": "3",
"script_type": "1"}


相关文章
|
4天前
|
SQL JavaScript 前端开发
vue中使用分页组件、将从数据库中查询出来的数据分页展示(前后端分离SpringBoot+Vue)
这篇文章详细介绍了如何在Vue.js中使用分页组件展示从数据库查询出来的数据,包括前端Vue页面的表格和分页组件代码,以及后端SpringBoot的控制层和SQL查询语句。
vue中使用分页组件、将从数据库中查询出来的数据分页展示(前后端分离SpringBoot+Vue)
|
2天前
|
存储 NoSQL 算法
使用图数据库进行复杂数据建模:探索数据关系的无限可能
【8月更文挑战第17天】图数据库以其高效的关系查询能力、直观的数据表示方式、灵活的数据模型和强大的可扩展性,在复杂数据建模和查询中展现出了巨大的潜力。随着大数据和人工智能技术的不断发展,图数据库的应用领域也将不断拓展和深化。对于需要处理复杂关系网络和数据关联性的场景来说,图数据库无疑是一个值得深入研究和应用的强大工具。
|
4天前
|
资源调度 关系型数据库 MySQL
【Flink on YARN + CDC 3.0】神操作!看完这篇教程,你也能成为数据流处理高手!从零开始,一步步教会你在Flink on YARN模式下如何配置Debezium CDC 3.0,让你的数据库变更数据瞬间飞起来!
【8月更文挑战第15天】随着Apache Flink的普及,企业广泛采用Flink on YARN部署流处理应用,高效利用集群资源。变更数据捕获(CDC)工具在现代数据栈中至关重要,能实时捕捉数据库变化并转发给下游系统处理。本文以Flink on YARN为例,介绍如何在Debezium CDC 3.0中配置MySQL连接器,实现数据流处理。首先确保YARN上已部署Flink集群,接着安装Debezium MySQL连接器并配置Kafka Connect。最后,创建Flink任务消费变更事件并提交任务到Flink集群。通过这些步骤,可以构建出从数据库变更到实时处理的无缝数据管道。
17 2
|
4天前
|
XML SQL JavaScript
在vue页面引入echarts,图表的数据来自数据库 springboot+mybatis+vue+elementui+echarts实现图表的制作
这篇文章介绍了如何在Vue页面中结合SpringBoot、MyBatis、ElementUI和ECharts,实现从数据库获取数据并展示为图表的过程,包括前端和后端的代码实现以及遇到的问题和解决方法。
在vue页面引入echarts,图表的数据来自数据库 springboot+mybatis+vue+elementui+echarts实现图表的制作
|
1月前
|
SQL 数据库 Python
Django框架数据库ORM查询操作(6)
【7月更文挑战第6天】```markdown Django ORM常用数据库操作:1) 查询所有数据2) 根据ID查询 3) 精确查询 4) 分页排序
43 1
|
前端开发 数据库 Python
【Django】Django之ORM数据库查询及获取数据操作
【Django】Django之ORM数据库查询及获取数据操作
71 0
|
SQL 缓存 数据库
python-django 数据库查询方法大全
  __exact 精确等于 like ‘aaa’   __iexact 精确等于 忽略大小写 ilike ‘aaa’   __contains 包含 like ‘%aaa%’   __icontains 包含 忽略大小写 ilike ‘%aaa%’,但是对于sqlite来说,contains的作用效果等同于icontains。
126 0
|
关系型数据库 MySQL 数据库
python的Web框架,Django模型系统二,模型属性,及数据库进阶查询
python的Web框架,Django模型系统二,模型属性,及数据库进阶查询 原始数据接上篇文章来操作。可能需要查看后才能懂。点击这里查看 1.常用的模型字段类型 官方文档:https://docs.djangoproject.com/en/2.1/ref/models/fields/#field-types 定义的模型中,类名对应的表名,类属性对应的表的字段,我们在上节内容有说过,可以查看。
1562 0
|
SQL 数据库 Python
Django 的数据库查询
class Blog(models.Model): name = models.CharField(max_length=100) tagline = models.
795 0