• 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,并返回

  • 相关阅读:
    fopen C++
    Jungle Roads(最小生成树+并查集)
    Magic Number(dp)
    error: macro names must be identifiers
    <errors>'MessageBoxA' : function does not take 1 parameter
    归并排序模板
    MFC程序出现“Debug Assertion Failed! File:afx.inl Line:177”错误
    构造函数初始化列表
    (Codeforces Round #136 (Div. 2))A. Little Elephant and Function(递归分析,简单)
    Argus(ZOJ Problem Set 2212)(优先队列)
  • 原文地址:https://www.cnblogs.com/wuzhengzheng/p/10427015.html
Copyright © 2020-2023  润新知