1.什么是序列化组件

在django中,自带一个序列化组件,它是用来将数据进行整理、转化成特定的为一个特定的格式(比如json数据格式),然后传输给前端,以便前端对数据进行处理操作。

2.为什么要用序列化组件

当我们从数据库取出一些数据时,我们需要将数据转成特定的格式,比如列表套字典的形式,然后将这些数据序列化成json的格式传输给前端,这就需要我们在后端把数据库里的数据每一个都遍历取值出来,这样比较麻烦,而且当数据字段很多的时候,我们很多遍历出来!代码如下:

后端代码:

from django.http import JsonResponse   # 导入JsonResponse模块
from app01 import models def ab_ser(request):
user_queryset = models.User.objects.all() # 查询所有的数据对象
user_list = [] # 创建一个空列表
for user_obj in user_queryset: # 循环出每一个数据对象
tmp = { # 利用对象点的方式取出每一个对应元素来充当字段的值
'pk':user_obj.pk,
'username':user_obj.username,
'age':user_obj.age,
'gender':user_obj.gender
}
user_list.append(tmp) # 添加到列表中
return JsonResponse(user_list, safe=False) # 转换成json格式返回给前端页面(safe属性为ture则表示只能传dict字典的形式,因为现在为列表的形式,所以改为False)

前端代码:

<body>
{% for user_obj in user_list %}
<p>{{ user_obj }}</p>
{% endfor %}
</body>

所以,这时候django给我们提供了一个自带的序列化组件,它能够将从数据库取出的数据,自动整合成一个特定的格式!大大减少了我们的工作!

3.django自带的序列化组件

自带的序列化模块为serializes

# 格式:serializers.serialize('序列化成什么格式',数据)
# 示例: from django.core import serializers # 导入 def ab_ser(request):
user_queryset = models.User.objects.all()
res = serializers.serialize('json',user_queryset) # 序列化成json格式数据
"""会自动帮你将数据变成json格式的字符串 并且内部非常的全面"""
return HttpResponse(res) # 返回给前端页面
'''

[{"model": "app01.user",
"pk": 1,
"fields": {"username": "gary", "age": 19, "gender": 1}}, {"model": "app01.user",
"pk": 2,
"fields": {"username": "tom", "age": 20, "gender": 2}}, {"model": "app01.user",
"pk": 3,
"fields": {"username": "kevin", "age": 29, "gender": 3}}, {"model": "app01.user",
"pk": 4,
"fields": {"username": "jack", "age": 38, "gender": 4}}] ''' # 我们可以看到它帮我们处理的数据是非常全面的,
# 告诉了我们这个数据来自于哪一个应用下的拿一张表,还告诉了我们对应的主键值,和详细信息

最新文章

  1. BZOJ3607 : 数据网络
  2. css样式初始化
  3. listview加载性能优化ViewHolder
  4. Ubuntu 13.10 Broadcom BCM4313问题
  5. hdu-5587 Array(回溯)
  6. XCODE 出现 The operation couldn&#39;t be completed.(LaunchServicesError error 0.)错误修复
  7. delphi 添加节点
  8. 非主窗体在任务栏显示按钮(简单好用)good
  9. Java面试题之六
  10. ccMacros
  11. MQ-2烟雾传感器启动
  12. CSS3如何实现超出指定文本以省略号显示效果
  13. 通过for 来获取数组里面的电话
  14. JS ajax请求参数格式( formData 、serialize)
  15. 简单说明CGI和动态请求是什么
  16. [转] LoadRunner 获取接口请求响应信息
  17. go实例—函数或方法的可变长参数
  18. [Go] Cookie 使用简介
  19. html5 file 自定义文件过滤
  20. 什么是spark(一) 分区以及和MR的区别

热门文章

  1. Flask 之 高可用IP代理网站
  2. SQL中的数字、字母和汉字
  3. Similarity calculation
  4. Linux Cgroup v1(中文翻译)(1):Control Group
  5. mysql复制表的两种方式
  6. 我所使用的生产 Java 17 启动参数
  7. 在 Pisa-Proxy 中,如何利用 Rust 实现 MySQL 代理
  8. 简述电动汽车的发展前景及3D个性化定制需求
  9. Kubebuilder简介与架构
  10. idea中创建Java类时,自动在文件头中添加作者和创建时间