码迷,mamicode.com
首页 > 其他好文 > 详细

0802 DRF 视图

时间:2018-08-03 00:56:47      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:class   校验   school   保存   查询   命名   转换   object   自定义   

昨日回顾:

    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 视图

标签:class   校验   school   保存   查询   命名   转换   object   自定义   

原文地址:https://www.cnblogs.com/Mr-Murray/p/9410585.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!