zoukankan      html  css  js  c++  java
  • Djang drf:APIView源码分析

     APIView源码分析

    Django REST framework 简介      

        在序列化与反序列化时,虽然操作的数据不尽相同,但是执行的过程却是相似的,也就是说这部分代码是可以复用简化编写的。        开发REST API的视图中,虽然每个视图具体操作的数据不同,但增、删、改、查的实现流程基本套路化,所以这部分代码也是可以复用简化编写的:增:校验请求数据 -> 执行反序列化过程 -> 保存数据库 -> 将保存的对象序列化并返回删:判断要删除的数据是否存在 -> 执行数据库删除改:判断要修改的数据是否存在 -> 校验请求的数据 -> 执行反序列化过程 -> 保存数据库 -> 将保存的对象序列化并返回查:查询数据库 -> 将数据序列化并返回Django REST framework可以帮助我们简化上述两部分的代码编写,大大提高REST API的开发速度。

    认识 Django REST framework 框架       

      Django REST framework 框架是一个用于构建Web API 的强大而又灵活的工具。通常简称为DRF框架 或 REST framework。DRF框架是建立在Django框架基础之上,由Tom Christie大牛二次开发的开源项目。

    Django REST framework特点:

      提供了定义序列化器Serializer的方法;

      可以快速根据 Django ORM 或者其它库自动序列化/反序列化;

      提供了丰富的类视图、Mixin扩展类,简化视图的编写;

      丰富的定制层级:函数视图、类视图、视图集合到自动生成 API,满足各种需要;

      多种身份认证和权限认证方式的支持;

      内置了限流系统;

      直观的 API web 界面;

      可扩展性,插件丰富

    # 同样要写一个视图类括号内不是写view而是写APIView,在路由层第二个参数传as_view

     # 由于视图类中没有as_view只能向父级寻找

    # as_view最终还是dispatch方法,看看该方法中做哪些事情

    # 将原生的request封装到Request中

     # 看下原生的request怎么获取

    # 我们在返回到dispatch中,将原生的request和视图类中其他数据封装到Request方法中后,走了initial方法

    # initial这个方法主要是一次执行了认证、权限、频率等组件后,取到请求方法加括号执行,赋值给response,并返回

  • 相关阅读:
    一个半路出家的渗透测试工程师(三)(持续更新中)
    linux简介
    Maven学习笔记
    博客项目实现文章评论功能(重点是评论回复)
    spring-mvc + shiro框架整合(sonne_game网站开发04)
    LeetCode题解 15题 第二篇
    jsp用jstl标签比较枚举
    spring-mvc+freemarker整合(sonne_game网站开发03)
    sonne_game网站开发02spring+mybatis框架搭建
    spring各jar包作用(转载)
  • 原文地址:https://www.cnblogs.com/wuzhengzheng/p/10427015.html
Copyright © 2011-2022 走看看