DRF学习第三课

发布时间 2023-05-28 14:04:34作者: super_ip

Restful接口标准:

1,请求方式:获取 GET,保存 POST,更新 PUT,删除 DELETE

2,请求路径:1,资源的名词复数作为路径  2,单一资源操作如:books/1/

3,请求参数:1,根据模型确定传递的字段-保存或更新--JSON  2,过滤信息--查询字符串形式传递

4,返回结果:1,错误 {error:错误信息} 2,正确  根据请求方式返回不同的结果

 

序列化器的知识点:

read_only=True  只参与序列化返回,不参与发序列化的验证和保存

write_only=True 只参与反序列化,不参与序列化返回

validated_data 获取验证后的字段数据

#单一字段验证
def validate_title(self,value):
    if value=="python':
        raise serializers.ValidationError("书名不能是python")
    return value
#多个字段验证
def validate(self,attrs):
    if attrs['read'] > attrs['comment']:
        raise serializers.ValidationError('阅读量不能评论量')
    return attrs
#可关联英雄的数据ID,也就是反向查询
    heroinfo_set=serializers.PrimaryKeyRelatedField(read_only=True,many=True)
  #返回英雄模型的str方法值
    heroinfo_set=serializers.StringRelatedField(read_only=True,many=True)
  #嵌套序列化器,对应的序列化器一定要在前面,否则会报错
    heroinfo_set=HeroInfoSerialzier(many=True)