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

  • 相关阅读:
    ECMAScript5之Object学习笔记(二)
    ECMAScript5之Object学习笔记(一)
    【笔记】css 自定义select 元素的箭头样式
    【笔记】h5 页面唤起电话呼叫
    【笔记】vue-cli 打包后路径问题出错的解决方法
    【笔记】BFC 模型知识整理
    【笔记】浏览器的缓存
    【笔记】web 的回流与重绘及优化
    【js 笔记】读阮一峰老师 es6 入门笔记 —— 第二章
    【js 笔记】读阮一峰老师 es6 入门笔记 —— 第一章
  • 原文地址:https://www.cnblogs.com/wuzhengzheng/p/10427015.html
Copyright © 2011-2022 走看看