解析器

解析器:
作用:传过来的数据,解析成字典
1.使用
使用:
    局部使用:
from rest_framework.parsers import JSONParser,FormParser

在视图类中:
        parser_classes = [FormParser,]
    全局使用
        REST_FRAMEWORK = {
            'DEFAULT_PARSER_CLASSES':[
                'rest_framework.parsers.JSONParser'
                ]

            }


局部使用指定的解析器:
            在视图类中:
            parser_classes = [FormParser,]

 上节复习内容:

频率:
        -自己定义:
            -定义一个大字典
            -请求来了,取出ip,
            -判断ip是否在大字典中,如果不在,先插入到字典中,然后返回true
            -如果在字典中,根据ip取出列表(时间列表,有顺序,最新的时间在最前面)
            -while循环,判断当前时间,距离最后一条时间,是否大于60s,如果大于60s,pop掉(循环完成,内部没有60s以外的时间)
            -判断列表长度,如果长度小于3,说明还可以访问,把当前时间,插到列表中的第一个位置,然后返回true
            -判断列表长度,如果长度大于等于3,返回false
            
        -内置频率访问的类
            -写一个类继承
                -scope='test'
                -def get_cache_key(self, request, view):
                    #以什么做限制,就把什么返回
                    return self.get_ident(request)
                
            -跟setting中对应
                    'DEFAULT_THROTTLE_RATES': {
                        'test': '10/m'
                    }
        -局部使用:
            throttle_classes = [MyThrottle,]
            
        -全局使用:
            在setting中配置
            'DEFAULT_THROTTLE_CLASSES': ['app01.MyAuth.MyThrottle', ],

认证和权限

认证:
        -认证类return的时候,返回值应该是两个或者是None
        -认证失败,抛异常
        -局部使用
        
        -全局使用
        
    权限:
        -写一个权限类,如果权限认证成功,返回true,失败,返回false
        -局部使用
        -全局使用

 

序列化:
        -写一个类,继承Serializer
        -写一些属性
            -text=CharField()
                -source属性,可以传字段名,可以传方法(source指定的字段名不能跟前面字段名重复)
            -aa=SerializerMethodField()
                -写一个方法:get_字段名(self,对象)
                -在方法内,通过orm查询其他表的数据
                -返回什么,SerializerMethodField对应的字段,就能拿到什么
                
        -使用:视图类
            -生成一个序列化类的对象(instance,data,many)
            -对象.data - 把对象,转成字典/列表
            
        -数据校验保存功能
            
    解析器:
        -局部使用
        -全局使用

 



 
posted @ 2018-12-17 08:32  粗糙的丸子  阅读(179)  评论(0编辑  收藏  举报