zoukankan      html  css  js  c++  java
  • 序列化组件

    一:序列化组件

      1:Django自带序列化组件(非常难用)

      2:rest_framework序列化之Serializer

        写一个头,继承Serializer

        在类中写要序列化的字段

        在View.py中使用:

          book_ser=BookSerializer(book_list,many=True)

          book_ser.data ----就是序列化后的数据

        source有三种使用方法:1,指定字段、2,指定方法、3,深度查询(跨表)

                           

      注意:SerializerMethodField,必须配合方法使用 get_字段名(self,obj), obj是什么?当前要序列化的对象。SerializerMethodField对应的方法中还可以继续使用其他的序列化类。

      3:rest_framework序列化之ModelSerializer

      写一个类继承ModelSerializer,在类的内部写:

    class Meta:
        model=models.Book
        fields='__all__'
        # exclude=['name','price']
        depth=1
    #重写属性

      4:查询单本书

      books/1,序列化单条数据:book_ser=BookSerializer(instance=book,many=False)

      注意book:不是queryset对象,是book对象

      5:新增一本书

      /books/ ——发送post请求,携带json格式数据

      6:反序列化之局部,全局钩子(序列化的类一定继承ModelSerializer的类)

                def validate_name(self,value):
                    if value.startswith('sb'):
                        #不能让你过
                        raise ValidationError('书名不能以sb开头')
                    else:
                        return value
    
                #全局钩子函数,对全局字段进行校验
                def validate(self,a):
                    # print(a)
                    name=a.get('name')
                    price=a.get('price')
                    if name != price:
                        raise ValidationError('错了')
                    else:
                        return a

    另附:json在线格式化:https://www.json.cn/

  • 相关阅读:
    火狐浏览器看哪些地方加nofollow
    2017.6.14-网站分析
    2017.6.11-目标关键词优化 三个方面内容
    2017-6-9长尾关键词优化
    2017.6.7seowhy学习笔记---seo知识总纲
    使用 WordPress 自定义字段功能为文章添加下载按钮
    xftp和xshell有什么区别
    决定网站排名的6个干货
    转载:如何在wordpress主题中添加设置页面
    win10+ubuntu双系统安装方案
  • 原文地址:https://www.cnblogs.com/liuxiaolu/p/10601089.html
Copyright © 2011-2022 走看看