使用Django Rest Framework之前我们要先知道,它是什么,能干什么用?

Django Rest Framework 是一个强大且灵活的工具包,用以构建Web API

为什么要使用Rest Framework

Django REST Framework可以在Django的基础上迅速实现API,并且自身还带有WEB的测试页面,可以方便的测试自己的API

web应用模式分两种:

1. 前后端不分离

在前后端不分离的引用模式中,前端页面看到的效果都是由后端控制的,由后端页面渲染或者重定向,也就是后端需要控制前端的展示,前端与后端的耦合度很高,这种模式比较适合纯网页应用,但是后端对接APP时,App可能并不需要后端返回一个HTML网页,二仅仅是数据本身,所以后端原本返回网页的接口不在适用前端APP应用,为了对接APP后端嗨需再开发一套接口。

这个可以看我之前写的DJango博客就可以知道,每次返回时都是使用render 或者redirect来返回的,需要带上HTML页面和参数

2. 前后端分离

在前后端分离的应用模式中,后端仅返回前端所需要的数据,不再渲染HTML页面,不再控制前端的效果,只要前端用户看到什么效果,从后端请求的数据如何加载到前端中,都由前端自己决定,网页有网页自己的处理方式,APP有APP的处理方式,但无论哪种前端所需要的数据基本相同,后端仅需开发一套逻辑对外提供数据即可,在前后端分离的应用模式中,前端与后端的耦合度相对较低

在前后端分离的应用模式中,我们通常将后端开发的每一视图都成为一个接口,或者API,前端通过访问接口来对数据进行增删改查

如果项目的需求是后一种情况的话,那么就可以用到Django Rest Framework了

Django REST framework 简介

序列化和反序列化可以复用
            增:效验请求数据>执行反序列化过程>保存数据库>将保存的对象序列化并返回
            删:判断要删除的数据是否存在.>执行数据库删除
            改:判断要修改的数据是否存在>效验请求的参数>执行反序列化过程>保存数据库>将保存的对象序列化并返回
            查:查询数据库>将数据序列化并返回
特点:
           1.提供了定义序列化器Serializer的方法,可以快速根据Django ORM 或者其他库自动序列化/反序列化
           2.提供了丰富的类视图\MIXIN扩展类,简化视图的编写
           3.丰富的定制层级:函数视图\类视图\试图结合到自动生成API,满足各种需要
           4.多种身份认证和权限认证方式的支持
           5.内置了限流系统
           6.直观的API web界面
           7.可扩展性 , 插件丰富

Django REST framework 的核心任务

使用Django Rest framework的话,和之前使用Django时没多大差别,当然,更复杂的差别我也不知道

1.   多了个serializers.py文件

这个文件的作用是Serializers把querysets和model instances这些复杂的数据结构转化为native Python 以便于以json,xml或其它内容类型的形式render出去。

2. 视图的核心功能变了

1.  将数据库数据序列化为前端需要的格式,并返回

2. 将前端发送过来的数据反序列化为模型类对象,并保存到数据库中

Django REST framework 的使用

1.  新建Django项目

这个不用多说,在之前的介绍中有

2.  配置 Rest framework

1.  settings.py

在INSTALLED_APPS中加入我们的项目名和rest_framework,因为我是直接新建了一个文件夹,并不是在以有其它项目的情况下新建项目,所以我们的项目名他自己创建好了,只需要加41行就可以

添加数据库配置,我使用的是MySQL

3.  modles.py

4.  serializers.py

这个文件并没有,需要我们自己新建,该项目下要新建两个文件,一个是urls.py, 另一个是serializers.py

    

5.  主容器的urls.py

    

6.  项目的urls.py

    

7.   views.py

8.  mysql 中插入数据

9.  一切准备就绪,就该启动项目了

10.  url拼接

    

Django Rest Framework 简介及 初步使用的更多相关文章

  1. Django REST framework 简介

    需求 REST framework需要如下: Python (2.7, 3.2, 3.3, 3.4, 3.5, 3.6) Django (1.10, 1.11, 2.0) 下面的文件包可以选择性安装 ...

  2. django rest framework 项目创建

    Django Rest Framework 是一个强大且灵活的工具包,用以构建Web API 为什么要使用Rest Framework Django REST Framework可以在Django的基 ...

  3. Django REST framework 理解

    ​ Web应用模式 1 .前后端不分离:在前后端不分离的应用模式中,前端页面看到的效果都是由后端控制,由后端渲染页面或重定向,也就是后端需要控制前端的展示,前端与厚度那的耦合度很高. 这种应用模式比较 ...

  4. Rest Framework简介 和 RESTful API 设计指南

    使用Django Rest Framework之前我们要先知道,它是什么,能干什么用? Django Rest Framework 是一个强大且灵活的工具包,用以构建Web API 为什么要使用Res ...

  5. Django Rest framework实现流程

    目录 一 什么是restful架构 二 Django REST framework简介 三 Django REST framework原理 四 Django REST framework源码流程 五 ...

  6. 05.DRF-Django REST framework 简介

    一.明确REST接口开发的核心任务 分析一下上节的案例,可以发现,在开发REST API接口时,视图中做的最主要有三件事: 将请求的数据(如JSON格式)转换为模型类对象 操作数据库 将模型类对象转换 ...

  7. Django REST Framework API Guide 01

    之前按照REST Framework官方文档提供的简介写了一系列的简单的介绍博客,说白了就是翻译了一下简介,而且翻译的很烂.到真正的生产时,就会发现很鸡肋,连熟悉大概知道rest framework都 ...

  8. Django Rest framework 之 节流

    RESTful 规范 django rest framework 之 认证(一) django rest framework 之 权限(二) django rest framework 之 节流(三) ...

  9. django rest framework restful 规范

    内容回顾: . django请求生命周期 -> 执行遵循wsgi协议的模块(socket服务端) -> 中间件(路由匹配) -> 视图函数(业务处理:ORM.模板渲染) -> ...

随机推荐

  1. 2019年北航OO第四单元(UML任务)及学期总结

    第四单元两次作业总结 第十三次作业 需求分析 本次作业需要完成一个UML类图解析器,所需要解析的只有符合UML标准和能够在Java 8中复现的UML类图.查询指令存在两种:仅与所查对象有关的指令,以及 ...

  2. .NET 图片解密为BASE64

    #region 图片加密 /// <summary> /// 加密本地文件 /// </summary> /// <param name="inputname& ...

  3. _DataStructure_C_Impl:AOE网的关键路径

    //_DataStructure_C_Impl:CriticalPath #include<stdio.h> #include<stdlib.h> #include<st ...

  4. SQL从头開始

    SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL) 查询和更新指令构成了 SQL 的 DML 部分: SELECT - 从数据库表中获取数据 UPDATE - 更新数据库表中 ...

  5. 每一个程序猿都须要了解的一个SQL技巧

    对于数据过滤而言CHECK约束已经算是相当不错了.然而它仍存在一些缺陷,比方说它们是应用到表上面的,但有的时候你可能希望指定一条约束,而它仅仅在特定条件下才生效. 使用SQL标准的WITH CHECK ...

  6. cocos2d-x 3.0游戏实例学习笔记《卡牌塔防》第一步---開始界面&amp;关卡选择

    /* 说明: **1.本次游戏实例是<cocos2d-x游戏开发之旅>上的最后一个游戏,这里用3.0重写并做下笔记 **2.我也问过木头本人啦.他说:随便写,第一别全然照搬代码:第二能够说 ...

  7. 初识cocos2dx——入门第一篇

    享受"啪"的按下Enter的快感. (by云风) cocos2dx是不是个toy引擎,不同的人有不同的看法.可是你不得不承认它非常受欢迎.好多非常火的手游使用的就是cocos2dx ...

  8. Docker Compose + Spring Boot + Nginx + Mysql

    Docker Compose + Spring Boot + Nginx + Mysql 实践 我知道大家这段时间看了我写关于 docker 相关的几篇文章,不疼不痒的,仍然没有感受 docker 的 ...

  9. 捣鼓TinyMCE 粘贴图片并上传+Django后台

    前面一篇写了上传到Flask后台,但是我不熟悉Flask,原先想学习一下,据说是轻量级. 但是我发现,学习会浪费我大量的时间,因为我并不是以这个为生的,我的目标只是要完成功能,让我自己能尽早使用起来, ...

  10. MyEclipse 安装svn 插件步骤详情

    方法一:在线安装 打开HELP- > MyEclipse Configuration Center.切换到SoftWare标签页. 点击Add Site 打开对话框,在对话框Name输入Svn, ...