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

  • 相关阅读:
    接口测试(apipost、jmeter和python脚本)
    接口测试人员需要掌握的知识技能
    使用抓包工具fiddler和apipost进行接口测试
    接口工具使用对比(apipost、jmeter、postman、swagger等)
    如何获取变量token的值
    接口文档生成工具apipost
    (Win10 应用中心打不开) Microsoft store 无法联网
    判断当前系统是64位还是32位
    VS2017 远程调试方法
    基于COM组件接口ICMLuaUtil的BypassUAC
  • 原文地址:https://www.cnblogs.com/wuzhengzheng/p/10427015.html
Copyright © 2011-2022 走看看