django rest framework 是什么?和django有什么关系?为什么讲这个?
ok,开篇3个夺命连环问。

我们先不回答这3个问题,我们来回想下之前讲django 主要讲了什么。

  1. django是什么?->Django是Python的WEB框架
  2. django如何创建项目和应用
    1. 通过django-admin startproject caseplatform 创建caseplatform 项目
    2. 通过django-admin startapp或python manage.py startproject project 创建应用
  3. 讲了django的MTV 设计模式
    1. M(models) 数据库
    2. T(templates) web页面
    3. V(views) 业务逻辑
  4. 讲了django类视图
  5. 讲了django模型->通过python类生成表(表CRUD)
  6. 讲了如何通过django类视图操作django模型(CRUD)
  7. 讲了restful 风格

讲了这些,好像也能够开发出一个系统出来(前端+后端)。但是,我们之前说过前后端分离的概念,前端负责前端页面编写,后端负责业务逻辑,我们的用例管理系统也是基于前后端分离的概念进行开发。但是django(MTV)好像并不太能实现前后端分离开发(templates展示web页面),而django rest framework则完美解决了这个问题。

如果我们想要开发Restful接口,视图中做的最主要的三件事:

  • 将请求(post、put请求)的数据(如:Json格式)转换为模型类对象(反序列化)
  • 操作数据库
  • 将模型类对象转换为响应的数据(如:Json格式)(序列化)

在视图中需要做的最核心的事:

  • 将数据库数据序列化为前端所需要的格式,并返回
  • 将前端发送的数据反序列化为模型类对象,并保存到数据库中

再回头看

  1. django rest framework 是什么?
  2. 和django有什么关系?
  3. 为什么讲这个?

django rest framework 是在django基础上进行了二次开发的框架。嗯,一句话回答了1和2。
那我们为什么讲django rest framework?我们后面简称DRF。答案很明显,我们想做个前后端分离系统,DRF 是一个比较完美的解决方案。至于DRF有哪些好处,我们先来简单罗列下,后面慢慢体会

  • 序列化与反序列化
  • 身份认证
  • 排序、过滤、分页、搜索、限流
  • 更丰富的类视图

Django Rest Framework 安装

安装

pip安装即可

  1. (env) D:\code\caseplatform>pip install djangorestframework
  2. 指定版本安装,我们这里使用指定版本安装
  3. (env) D:\code\caseplatform>pip install djangorestframework==3.12.4

配置

打开setting.py

  1. INSTALLED_APPS = [
  2. 'django.contrib.admin',
  3. 'django.contrib.auth',
  4. 'django.contrib.contenttypes',
  5. 'django.contrib.sessions',
  6. 'django.contrib.messages',
  7. 'django.contrib.staticfiles',
  8. 'project',
  9. 'rest_framework',
  10. ]