zoukankan      html  css  js  c++  java
  • 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的使用
           

  • 相关阅读:
    [转]给定单链表,检测是否有环。如果有环,则求出进入环的第一个节点
    二叉树的后序遍历
    求二叉树叶子节点的个数
    随笔
    两个免费转换视频的软件,实现服务器端Video2FLV
    自制Flash FLV视频播放器
    Flash取得外部WEB参数的方法
    [转]javascript小技巧,超强推荐
    c#设计模式(转)
    ffmpeg和Mencoder使用实例小全
  • 原文地址:https://www.cnblogs.com/Mr-Murray/p/9410585.html
Copyright © 2011-2022 走看看