• drf框架- modelviewset封装类


    一 简介 利用封装好的视图类进行日常操作
    二 具体描述
      1 类名 ModelViewSet
      2 继承方法类  
       ListModelMixin -->提供一个list方法,对应get方法 实现了列出一个查询集;响应数据可以设置分页。
       CreateModelMixin -->提供 create(request, *args, **kwargs) 方法,对应post方法 实现创建和保存新模型实例 
       RetrieveModelMixin -->提供 retrieve(request, *args, **kwargs) 方法,对应get方法 实现单条数据的查询功能
       UpdateModelMixin -->提供 update(request, *args, **kwargs) 方法,对应put方法,实现更新和保存现有模型实例。
       DestroyModelMixin -->提供一个 destroy(request, *args, **kwargs) 方法,对应delete`实现现有模型实例的删除
    三 具体使用
      django后端
      1 url设置
        url(r'^books/$', views.BookModelView.as_view({'get':'list','post':'create'})),
        url(r'^books/(?P<pk>d+)/$', views.BookModelView.as_view({'get':'retrieve','put':'update','delete':'destroy'}))
     2 调用
       from rest_framework import viewsets
       class PersonalSet(ModelViewSet):
       queryset = models.objects.all()
       serializer_class = PersonalSerialize
       VUE 前端
       post /books/ 传递参数
       get /books/
       put /books/pk/ 传递参数
       delete /books/pk/
        retrieve /bokks/pk/
    四 整体调用过程
      1 前端发送http请求
      2 modelviewset针对不同请求寻找http对应方法函数
        post->create函数
        get->list函数
        put-> 1 update函数(全字段更新,必须要有unique_key,否则会报错)
                  2 partial_update(部分字段更新,不必须有unique_key,推荐使用) 
       delete->destroy函数
      3 针对传递参数进行有效性判断
        1 serializer.valid() 根据的是序列化内部定义的规则
           1 返回值True/False,只有通过才能执行下一步操作
           2 可以通过serializer.errors 查看错误
      4 最后调用serializer.save() 内部指向serializers.py内部方法
    五 重写

        当不满足需求时.可以进行重

    六 总结

       对于一般表格的处理,优先采用modelviewset.能有效的减少代码量

  • 相关阅读:
    t=20点击发送pingback
    Hibernate 序列生成主键
    oracle创建存储过程
    mysql允许某ip访问
    ORACLE用户解锁
    oracle查询锁表
    oracle杀掉执行的死循环存储过程
    oracle以逗号分隔查询结果列表
    查询oracle的session数
    oracle存储过程-获取错误信息
  • 原文地址:https://www.cnblogs.com/danhuangpai/p/11242590.html
Copyright © 2020-2023  润新知