#rest_framework 序列化
from rest_framework import serializers#serilizers.Serializer serializers.ModelSerializer 两种序列化方式class RolesSerializer(serializers.Serializer):id = serializers.IntegerField()title = serializers.CharField()class RolesView(APIView):def get(self, request, *args, **kwargs):#方式1#roles = models.Role.objects.all().values('id','title')#roles = list(roles)#ret = json.dumps(roles, ensure_ascii=False)#方式2-1roles = models.Role.objects.all()ser = RolesSerializer(instance=roles, many=True)ret = json.dumps(ser.data, ensure_ascii=False)return HttpResponse(ret)#方式2-2roles = models.Role.objects.all().first()ser = RolesSerializer(instance=roles, many=False)ret = json.dumps(ser.data, ensure_ascii=False)return HttpResponse(ret)class UserInfoSerializer(serializers.Serializer):username = serializer.CharField()password = serializer.CharField()user_type = serializer.IntegerField()#user_type = serializer.Charield(source="get_user_type_display")  #找到每一行的对象 row.user_type# row.get_user_type_display  就可以对choices进行层级的字符#可执行gp = serializers.CharField(source="group.title")  #外键group关联Group表,通过.获取Group表字段参数#显示 [{"username":"ljc", "password":"123", "user_type":"VIP", "gp":"A组"}]#多对多 manytomany 不能通过source  通过serializers.SerializerMethodField()roles = serializers.SerializerMethodField() #自定义显示def get_roles(self, row):role_obj_list = row.roles.all() #获取角色对象ret = []for item in role_obj_list:ret.append({'id':item.id, 'title':item.title})return retclass UserInfoView(APIView):def get(self, request, *args, **kwargs):users = models.UserInfo.objects.all()ser = UserInfoSerializer(instance=users, many=True)ret = json.dumps(ser.data, ensure_ascii=False)return HttpResponse(ret)#方式3
class UserInfoSerializer(serializers.ModelSerializer):user_type = serializer.Charield(source="get_user_type_display")  #混合使用roles = serializers.SerializerMethodField() #自定义显示class Meta:model = models.UserInfo#fields = "__all__"  全部自动生成#fields = ['id', 'username', 'password'] #自定义#fields = ['id', 'username', 'password', 'user_type']fields = ['roles'] #复杂的def get_roles(self, row):role_obj_list = row.roles.all() #获取角色对象ret = []for item in role_obj_list:ret.append({'id':item.id, 'title':item.title})class UserInfoView(APIView):def get(self, request, *args, **kwargs):users = models.UserInfo.objects.all()ser = UserInfoSerializer(instance=users, many=True)ret = json.dumps(ser.data, ensure_ascii=False)return HttpResponse(ret)#小清新版
class UserInfoSerializer(serializers.ModelSerializer):class Meta:model = models.UesrInfofields = "__all__"depth = 1  #这个就可以将所有的数据都显示了  默认为0 只是关联本表的数据 depth最好0-4层就好了#表与表之间的manytomany onetoone foreignkey 表示一层 第二个表再关联 就2层  连表操作
class UserInfoView(APIView):def get(self, request, *args, **kwargs):users = models.UserInfo.objects.all()ser = UserInfoSerializer(instance=users, many=True)ret - json.dumps(ser.data, ensure_ascii=False) #ensure_ascii=False 显示中文return HttpResponse(ret)

转载于:https://www.cnblogs.com/Liang-jc/p/9399024.html

rest_framework-序列化-总结完结篇相关推荐

  1. JAVA之旅(三十五)——完结篇,终于把JAVA写完了,真感概呐!

    JAVA之旅(三十五)--完结篇,终于把JAVA写完了,真感概呐! 这篇博文只是用来水经验的,写这个系列是因为我自己的java本身也不是特别好,所以重温了一下,但是手比较痒于是就写出了这三十多篇博客了 ...

  2. 吴甘沙清华演讲:大数据的十个技术前沿(完结篇)

    吴甘沙清华演讲:大数据的十个技术前沿(完结篇) 来源:数据派 时间:2015-01-05 17:39:06 作者:清华大数据产业联合会 吴甘沙院长从大数据技术前沿的十个问题入手,对大数据产业进行了深度 ...

  3. ASP.NET 5系列教程(七)完结篇-解读代码

     在本文中,我们将一起查看TodoController 类代码. [Route] 属性定义了Controller的URL 模板: [Route("api/[controller]&quo ...

  4. KlayGE 4.0中Deferred Rendering的改进(五)完结篇:Post process

    转载请注明出处为KlayGE游戏引擎 上一篇分析了KlayGE中实现实时全动态GI的方法,本篇是这个系列的完结篇,主要讲流水线的最后一段:Post process. Post process 在Kla ...

  5. Android Service(7)--完结篇

    傻蛋在Android Service(4) 中讲述了使用AIDL语言,来让ADT帮助我们自动生成一个Stub类(Binder的子类),来实现不同进程中Service的调用.通过研究ADT自动生成的代码 ...

  6. 从无到有写一个运维APP(三)完结篇

    前言:自己的挖的坑还得填,此篇为完结篇. 环境的搭建参考第一篇 从无到有写一个运维APP(一),至于第二篇就跳过吧,写个 APP 没那么复杂. 由于自己现在无业游民,所以没有什么现成的环境,环境就随便 ...

  7. .NET 并行(多核)编程系列之六 Task基础部分完结篇

    .NET 并行(多核)编程系列之六 Task基础部分完结篇 前言:之前的文章介绍了了并行编程的一些基本的,也注重的讲述了Task的一些使用方法,本篇很短,将会结束Task的基础知识的介绍. 本篇的主要 ...

  8. [推荐] TechNet 广播 SQL Server 2000完结篇

      TechNet中文网络广播在之前已经推出了SQL Server 2000的基础系列和管理专家系列,使广大听众认识并掌握了SQL Server 2000的管理技巧.本次系列作为前两次系列课程的完结篇 ...

  9. 用python提取图片主要颜色_Python可视化|09-使用python和R提取图片颜色绘图(五-颜色使用完结篇)...

    本文是继前面四篇python可视化颜色使用的完结篇,介绍如何使用python提取图片中的颜色绘图: 如果你不想使用前人设定好的色号或者colormap,想自己从好看的图片中提取颜色,请往下看: 1.颜 ...

  10. mysql 主从 通俗易懂_MySQL 主从同步架构中你不知道的“坑”(完结篇)

    MySQL 主从同步架构中你不知道的"坑"(完结篇) 收录于话题 #MySQL从入门到放弃 26个 点击上方蓝字,关注我们哟! 前言导读 之前写出一篇文章也是关于这个主从同步架构的 ...

最新文章

  1. linux按文件名排序ls,linux – 如何使用shell脚本按名称对文件进行排序
  2. 《Python Cookbook》 最佳译本开放下载啦!
  3. rocketmq 消费者不能调用其他服务_Spring Cloud Alibaba RocketMQ - 构建异步通信的微服务...
  4. stm32f103电子钟心得体会_浅谈STM32_RTC闹钟
  5. Android之查看网络图片和网页HTML
  6. ubuntu mysql自动备份文件_Ubuntu下开展MYSQL自动备份
  7. 3DS_MAX渲染笔记
  8. macbook里软件打不开说是没有权限
  9. 周年直播倒计时2天,攒足惊喜等你开场! | MindSpore 开源一周年
  10. 如何解决第三方JavaScript引入工程后报错
  11. Using Java in Debian
  12. qmake,make,nmake
  13. windows server2012计算机管理“系统工具”里面没有“本地用户和组”怎么办?
  14. 网络文学网站的盈利模式分析
  15. 根据IP地址求网络号、子网号和主机号
  16. 硬盘安装ovf镜像版Linux,linux-OVF模板部署问题
  17. log4j输出多个自定义日志文件、动态配置多个日志文件
  18. 常用的一些javascript小技巧 大全
  19. shell脚本编写简易教程
  20. 飞腾FT2000/4 u-boot/UEFI开发环境搭建

热门文章

  1. Code Style of Mangata
  2. mysql数据库用doc命令,myMySQL数据库怎么使用dos命令安装? MySQL数据库使用教程
  3. 不规则矩形中心求法 c语言,不规则矩形
  4. R︱Rstudio 1.0版本尝鲜(R notebook、下载链接、sparkR、代码时间测试profile)
  5. Micropython教程之TPYBoard DIY金属探测仪实例演示(萝卜学科编程教育)
  6. 一台linux服务器配置多个tomcat应用
  7. PostgreSQL ALTER TABLE中改变数据类型时USING的用法转
  8. ectouch手机商城首页调用指定分类下的商品
  9. 几种排序算法的比较(冒泡、快速、Shell排序)
  10. 工作中最重要的个人品质--独立