0802 DRF 视图
昨日回顾:
1. Serializer(序列化)
1. ORM对应的query_set和ORM对象转换成JSON格式的数据
1. 在序列化类中定义自定义的字段:SerializerMethodField
在类中定义 get_自定义字段名(self, obj)方法
2. read_only 只在显示(查询)时才会有效。 2. 对前端POST过来的数据做有效性的校验
1. 一定要将数据以data=的形式传递到序列化类中!!!
ser_obj = CommentSerializer(data=comment_data)
2. 判断数据是否有效
ser_obj.is_valid():
ser_obj.validated_data 中保存经过校验的有效数据 3. 局部钩子
定义一个validate_字段名(self, value)
4. 全局钩子
定义一个validate方法 3. .save()方法将符合要求的数据存入数据库
1. 本质上还是调用ORM的create()方法
类名.objects.create(**ser_obj.validated_data) 2. 超链接的序列化
1. 超连接字段的三个参数
# 文章超链接序列化
class ArticleHyperLinkedSerializer(serializers.HyperlinkedModelSerializer):
# view_name参数 默认使用 表名-detail
# lookup_url_kwarg参数 默认使用pk,指的是反向生成URL的时候 路由中的分组命名匹配的key
# lookup_field参数 默认使用的pk, 指的是反向生成URL的时候, 路由中分组命名匹配的value
school = serializers.HyperlinkedIdentityField(
view_name='school-detail111',
lookup_url_kwarg='name',
lookup_field='school_name'
)
2. 想要生成完整的超链接API,在序列化的时候还要传入 context={'request': request}
ser_obj = app01_serializers.ArticleHyperLinkedSerializer(all_article, many=True, context={'request': request})
1. 想要生成相对路径
context={'request': None}
今日内容:
1. 面向对象的三大特性
        1. 封装
            1. 把共有的数据当成一类物体的属性
            2. 把共有的功能当成一类物体的方法
            
        2. 继承
            1. 把共有的属性或方法抽离出来放到一个基类(父类)中
        3. 多态
            1. 不同的物体调用同一个方法有不同的效果
                Python中数字的+和字符串的+
    2. 葫芦娃的故事
        五个娃
           ↓
        奇数娃和偶数娃
           ↓
         套娃
    3. GenericAPIView和五个混合类的组合使用
    
    4. RetrieveUpdateDestroyAPIView和ListCreateAPIView的使用
    
    5. ModelViewSet的使用
    
    6. ModelViewSet Router的使用
0802 DRF 视图的更多相关文章
- 使用DRF视图集时自定义action方法
		在我们用DRF视图集完成了查找全部部门,创建一个新的部门,查找一个部门,修改一个部门,删除一个部门的功能后,views.py的代码是这样子的: class DepartmentViewSet(Mode ... 
- 【DRF视图】
		目录 开始使用内置视图 请结合[DRF序列化]此文献中的数据文件及序列化文件来阅读如下代码. DRF视图为我们提供了非常简便的方法--内置了增删改查等一系列的操作. 我们只需在url中指定对应的方法, ... 
- DRF视图-请求与响应
		DRF视图 drf的代码简写除了在数据序列化体现以外,在视图中也是可以的.它在django原有的django.views.View类基础上,drf内部封装了许多子类以便我们使用. Django RES ... 
- DRF视图组件
		DRF视图组件: CVB模式继承----五层 from django.views import View # Django的View from rest_framework.views import ... 
- drf 视图使用及源码分析
		前言 drf视图的源码非常的绕,但是实现的功能却非常的神奇. 它能够帮你快速的解决ORM增删改查的重复代码,非常的方便好用. 下面是它源码中的一句话: class ViewSetMixin: &quo ... 
- DRF 视图组件
		目录 DRF 视图组件 视图组件大纲 两个视图基本类 五个扩展类 九个子类视图 视图集 常用视图集父类 魔法类 一览表 DRF中视图的"七十二变" 第一层:基于APIview的五个 ... 
- restfull规范、DRF视图和路由
		一.restfull规范的简单介绍 1.介绍 REST:表述性状态转移,是一种web交互方案 资源:在web中只要有被引用的必要都是资源 URI: URI 统一资源标识符 URL 统一资源定位符 统一 ... 
- drf视图组件、认证组件
		视图组件 1.基本视图 url(r'^publish/$', views.PublishView.as_view()), url(r'^publish/(?P<pk>\d+)/$', vi ... 
- DRF 视图和路由
		Django Rest Feamework 视图和路由 DRF的视图 APIView 我们django中写CBV的时候继承的是View,rest_framework继承的是APIView,那么他们两个 ... 
随机推荐
- Android Studio--NDK编译C代码为.so文件,JNI调用
			前言: 从Android Studio开始,就支持jni和.so库调用了. 环境: Windows 7+Android Studio2.1.2+NDK版本:android-ndk-r10e 准备工作: ... 
- 【转】在Eclipse中使用JUnit4进行单元测试(高级篇)
			http://blog.csdn.net/andycpp/article/details/1329218 通过前2篇文章,您一定对JUnit有了一个基本的了解,下面我们来探讨一下JUnit4中一些高级 ... 
- 第一百八十二节,jQuery-UI,知问前端--日历 UI
			jQuery-UI,知问前端--日历 UI 学习要点: 1.调用 datepicker()方法 2.修改 datepicker()样式 3.datepicker()方法的属性 4.datepicker ... 
- php 佛祖保佑 永无bug
			<pre name="code" class="java">/* _ooOoo_ o8888888o 88" . "88 (| ... 
- hadoop2.4完全分布式部署
			hadoop2.4完全分布式部署 感谢:http://blog.csdn.net/licongcong_0224/article/details/12972889 集群组成: 两台red hat en ... 
- Android-风格和主题
			Android-风格和主题 一 Style和主题Theme的差别 1.Theme是针对窗口级别的,改变窗口样式 2.Style是针对窗口元素级别的.改变指定控件或者Layout的样式 二 使用Styl ... 
- asp.net 定时间点执行任务的简易解决办法
			这里的定时间点执行任务,指的是每天的某个时间执行一项任务. 比如每天凌晨七点的时候email发送一次报表. 这里首先想到的就是利用 Global.asax 文件来实现, 以下Global文件的内容. ... 
- 【ask】vmware(NAT)中的linux突然无法访问互联网网址,但是直接用ip可以访问。
			前两天虚拟机里的linuxmint不知何故,突然无法访问互联网了.依稀记得是升级了win7下面的360安全卫士之后发生的事情.所以, 第1步就开始去找防火墙的各种设置,结果没有查到结果. 第2步猛然看 ... 
- python3----字符串格式化(format)
			用法: 它通过{}和:来代替传统%方式 1.使用位置参数 要点:从以下例子可以看出位置参数不受顺序约束,且可以为{},只要format里有相对应的参数值即可,参数索引从0开,传入位置参数列表可用*列表 ... 
- 2205 Problem  B
			问题 B: [高精度]简单高精度加法 时间限制: 1 Sec 内存限制: 64 MB 提交: 77 解决: 25 [提交][状态][讨论版] 题目描述 修罗王解决了计算机的内存限制问题,终于可以使 ... 
