rest_framework-序列化-总结完结篇
#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-序列化-总结完结篇相关推荐
- JAVA之旅(三十五)——完结篇,终于把JAVA写完了,真感概呐!
JAVA之旅(三十五)--完结篇,终于把JAVA写完了,真感概呐! 这篇博文只是用来水经验的,写这个系列是因为我自己的java本身也不是特别好,所以重温了一下,但是手比较痒于是就写出了这三十多篇博客了 ...
- 吴甘沙清华演讲:大数据的十个技术前沿(完结篇)
吴甘沙清华演讲:大数据的十个技术前沿(完结篇) 来源:数据派 时间:2015-01-05 17:39:06 作者:清华大数据产业联合会 吴甘沙院长从大数据技术前沿的十个问题入手,对大数据产业进行了深度 ...
- ASP.NET 5系列教程(七)完结篇-解读代码
在本文中,我们将一起查看TodoController 类代码. [Route] 属性定义了Controller的URL 模板: [Route("api/[controller]&quo ...
- KlayGE 4.0中Deferred Rendering的改进(五)完结篇:Post process
转载请注明出处为KlayGE游戏引擎 上一篇分析了KlayGE中实现实时全动态GI的方法,本篇是这个系列的完结篇,主要讲流水线的最后一段:Post process. Post process 在Kla ...
- Android Service(7)--完结篇
傻蛋在Android Service(4) 中讲述了使用AIDL语言,来让ADT帮助我们自动生成一个Stub类(Binder的子类),来实现不同进程中Service的调用.通过研究ADT自动生成的代码 ...
- 从无到有写一个运维APP(三)完结篇
前言:自己的挖的坑还得填,此篇为完结篇. 环境的搭建参考第一篇 从无到有写一个运维APP(一),至于第二篇就跳过吧,写个 APP 没那么复杂. 由于自己现在无业游民,所以没有什么现成的环境,环境就随便 ...
- .NET 并行(多核)编程系列之六 Task基础部分完结篇
.NET 并行(多核)编程系列之六 Task基础部分完结篇 前言:之前的文章介绍了了并行编程的一些基本的,也注重的讲述了Task的一些使用方法,本篇很短,将会结束Task的基础知识的介绍. 本篇的主要 ...
- [推荐] TechNet 广播 SQL Server 2000完结篇
TechNet中文网络广播在之前已经推出了SQL Server 2000的基础系列和管理专家系列,使广大听众认识并掌握了SQL Server 2000的管理技巧.本次系列作为前两次系列课程的完结篇 ...
- 用python提取图片主要颜色_Python可视化|09-使用python和R提取图片颜色绘图(五-颜色使用完结篇)...
本文是继前面四篇python可视化颜色使用的完结篇,介绍如何使用python提取图片中的颜色绘图: 如果你不想使用前人设定好的色号或者colormap,想自己从好看的图片中提取颜色,请往下看: 1.颜 ...
- mysql 主从 通俗易懂_MySQL 主从同步架构中你不知道的“坑”(完结篇)
MySQL 主从同步架构中你不知道的"坑"(完结篇) 收录于话题 #MySQL从入门到放弃 26个 点击上方蓝字,关注我们哟! 前言导读 之前写出一篇文章也是关于这个主从同步架构的 ...
最新文章
- linux按文件名排序ls,linux – 如何使用shell脚本按名称对文件进行排序
- 《Python Cookbook》 最佳译本开放下载啦!
- rocketmq 消费者不能调用其他服务_Spring Cloud Alibaba RocketMQ - 构建异步通信的微服务...
- stm32f103电子钟心得体会_浅谈STM32_RTC闹钟
- Android之查看网络图片和网页HTML
- ubuntu mysql自动备份文件_Ubuntu下开展MYSQL自动备份
- 3DS_MAX渲染笔记
- macbook里软件打不开说是没有权限
- 周年直播倒计时2天,攒足惊喜等你开场! | MindSpore 开源一周年
- 如何解决第三方JavaScript引入工程后报错
- Using Java in Debian
- qmake,make,nmake
- windows server2012计算机管理“系统工具”里面没有“本地用户和组”怎么办?
- 网络文学网站的盈利模式分析
- 根据IP地址求网络号、子网号和主机号
- 硬盘安装ovf镜像版Linux,linux-OVF模板部署问题
- log4j输出多个自定义日志文件、动态配置多个日志文件
- 常用的一些javascript小技巧 大全
- shell脚本编写简易教程
- 飞腾FT2000/4 u-boot/UEFI开发环境搭建
热门文章
- Code Style of Mangata
- mysql数据库用doc命令,myMySQL数据库怎么使用dos命令安装? MySQL数据库使用教程
- 不规则矩形中心求法 c语言,不规则矩形
- R︱Rstudio 1.0版本尝鲜(R notebook、下载链接、sparkR、代码时间测试profile)
- Micropython教程之TPYBoard DIY金属探测仪实例演示(萝卜学科编程教育)
- 一台linux服务器配置多个tomcat应用
- PostgreSQL ALTER TABLE中改变数据类型时USING的用法转
- ectouch手机商城首页调用指定分类下的商品
- 几种排序算法的比较(冒泡、快速、Shell排序)
- 工作中最重要的个人品质--独立