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"}


相关文章
|
28天前
|
SQL 安全 数据库
如何在Django中正确使用参数化查询或ORM来避免SQL注入漏洞?
如何在Django中正确使用参数化查询或ORM来避免SQL注入漏洞?
129 77
|
22天前
|
SQL Java 数据库连接
【潜意识Java】MyBatis中的动态SQL灵活、高效的数据库查询以及深度总结
本文详细介绍了MyBatis中的动态SQL功能,涵盖其背景、应用场景及实现方式。
73 6
|
21天前
|
数据管理 数据库 数据安全/隐私保护
Django—同一项目不同app使用不同数据库
在Django项目中实现不同app使用不同数据库的配置,可以通过配置多数据库、创建数据库路由和配置路由来实现。通过这种方法,可以有效地将数据隔离到不同的数据库,提高数据管理的灵活性和系统的可扩展性。希望本文能为开发者在Django项目中使用多数据库提供清晰的指导。
21 4
|
22天前
|
缓存 关系型数据库 MySQL
【深入了解MySQL】优化查询性能与数据库设计的深度总结
本文详细介绍了MySQL查询优化和数据库设计技巧,涵盖基础优化、高级技巧及性能监控。
164 0
|
2月前
|
存储 缓存 网络协议
数据库执行查询请求的过程?
客户端发起TCP连接请求,服务端通过连接器验证主机信息、用户名及密码,验证通过后创建专用进程处理交互。服务端进程缓存以减少创建和销毁线程的开销。后续步骤包括缓存查询(8.0版后移除)、语法解析、查询优化及存储引擎调用,最终返回查询结果。
41 6
|
2月前
|
SQL 定位技术 数据库
深入探索Django ORM:高效数据库操作的秘诀####
本文旨在为读者揭开Django ORM(对象关系映射)的神秘面纱,通过一系列生动的比喻和详实的案例,深入浅出地讲解其核心概念、工作原理及高级特性。我们将一起探讨如何利用Django ORM简化数据库交互,提升开发效率,同时确保数据的一致性和安全性。不同于传统的技术文档,本文将以故事化的形式,带领读者在轻松愉快的氛围中掌握Django ORM的精髓。 ####
|
3月前
|
SQL 监控 数据库
深入探索Django ORM:高效数据操作的秘诀与实践####
在当今的Web开发领域,提升数据访问层的效率是优化应用性能的关键。本文旨在通过剖析Django框架中的ORM(对象关系映射)机制,揭示其如何简化数据库交互,并探讨一系列高级技巧与策略,帮助开发者构建更高效、可维护的数据访问代码。我们不涉及安装步骤或基础概念,而是聚焦于实战经验分享,旨在为中高级开发者提供深度洞见。 ####
|
2月前
|
SQL JavaScript 程序员
数据库LIKE查询屡试不爽?揭秘大多数人都忽视的秘密操作符!
本文分析了因数据库中的不可见空白字符导致的数据查询问题,探讨了问题的成因与特性,并提出了使用 SQL 语句修复问题的有效方案。同时,总结了避免类似问题的经验和注意事项。
46 0
|
3月前
|
存储 缓存 固态存储
怎么让数据库查询更快
【10月更文挑战第28天】
51 2
|
3月前
|
存储 缓存 关系型数据库
怎么让数据库查询更快
【10月更文挑战第25天】通过以上综合的方法,可以有效地提高数据库查询的速度,提升应用程序的性能和响应速度。但在优化过程中,需要根据具体的数据库系统、应用场景和数据特点进行合理的调整和测试,以找到最适合的优化方案。

热门文章

最新文章