django rest framework 是什么?和django有什么关系?为什么讲这个?
ok,开篇3个夺命连环问。
我们先不回答这3个问题,我们来回想下之前讲django 主要讲了什么。
- django是什么?->Django是Python的WEB框架
- django如何创建项目和应用
- 通过django-admin startproject caseplatform 创建caseplatform 项目
- 通过django-admin startapp或python manage.py startproject project 创建应用
- 讲了django的MTV 设计模式
- M(models) 数据库
- T(templates) web页面
- V(views) 业务逻辑
- 讲了django类视图
- 讲了django模型->通过python类生成表(表CRUD)
- 讲了如何通过django类视图操作django模型(CRUD)
- 讲了restful 风格
讲了这些,好像也能够开发出一个系统出来(前端+后端)。但是,我们之前说过前后端分离的概念,前端负责前端页面编写,后端负责业务逻辑,我们的用例管理系统也是基于前后端分离的概念进行开发。但是django(MTV)好像并不太能实现前后端分离开发(templates展示web页面),而django rest framework则完美解决了这个问题。
如果我们想要开发Restful接口,视图中做的最主要的三件事:
- 将请求(post、put请求)的数据(如:Json格式)转换为模型类对象(反序列化)
- 操作数据库
- 将模型类对象转换为响应的数据(如:Json格式)(序列化)
在视图中需要做的最核心的事:
- 将数据库数据序列化为前端所需要的格式,并返回
- 将前端发送的数据反序列化为模型类对象,并保存到数据库中
再回头看
- django rest framework 是什么?
- 和django有什么关系?
- 为什么讲这个?
django rest framework 是在django基础上进行了二次开发的框架。嗯,一句话回答了1和2。
那我们为什么讲django rest framework?我们后面简称DRF。答案很明显,我们想做个前后端分离系统,DRF 是一个比较完美的解决方案。至于DRF有哪些好处,我们先来简单罗列下,后面慢慢体会
- 序列化与反序列化
- 身份认证
- 排序、过滤、分页、搜索、限流
- 更丰富的类视图
Django Rest Framework 安装
安装
pip安装即可
(env) D:\code\caseplatform>pip install djangorestframework
指定版本安装,我们这里使用指定版本安装
(env) D:\code\caseplatform>pip install djangorestframework==3.12.4
配置
打开setting.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'project',
'rest_framework',
]