• DRF之视图类(mixin)源码解析


     同样的增删改查操作,如果我们还像之前序列化组件那样做,代码重复率过多,所以我们用视图表示:

    具体源码实现:
    首先定义一个视图类,然后根据mixin点进去有五个封装好的方法,这五个方法共有的属性就是都需要一个queryset和序列化,所以五个方法都需要写这两个东西。

     

    前边是查询单条数据,后边的类是查询多条数据.要区分开。

    其中对应关系

    ListModelMixin----------get----------单条数据的查询
    CreateModelMixin-------post---------增加单条数据
    UpdateModelMixin------put----------对多条数据的修改
    DestroyModelMixin-----delete-------可以对多条数据
    RetrieveModelMixin-----get----------查询多条数据

    这样能解决问题,但是重复的代码似乎也不少。

     DRF又给我们封装了:

     源码就不一一走了。

     当然这已经很简单了,但是我们还有更简单的!让封装更彻底一下

    源码分析:

    我们先看查询多个数据的,项目启动,先定义一个类以及url设置。

    点进去ModelViewSet:没有as_view方法继续往后看。

    进入ViewSetMixxin看有没有这个方法。

    果然是有的,

    #url(r'^authors/$', views.AuthorsView.as_view({"get":"list","post":"create"})),
    #url(r'^authors/$', ViewSetMixin.as_view({"get":"list","post":"create"})),
    #url(r'^authors/$', ViewSetMixin.view),
  • 相关阅读:
    Android环境配置问题
    Android diary 1
    Android diary 2
    myeclipse常见问题
    Mysql常用命令
    桉树系统公司市场高级副总裁David Butler:全球最广泛应用的企业内部云平台
    引用外部.css或.js文件的路径问题
    [基础知识]巧用项目生成事件属性自动打包
    TSQL经验总结
    [Silverlight]UI 开发规范
  • 原文地址:https://www.cnblogs.com/hnlmy/p/10745771.html
Copyright © 2020-2023  润新知