Django Rest_Framework
核心思想:大量缩减编写api接口的代码
Django Rest_Framework是一个建立在Django基础之上的Web应用开发框架,可以快捷的开发REST API接口应用,在REST framework中,提供了序列化器Serializer的定义,可以帮助我们简化序列化与反序列化的过程,不仅如此,还提供丰富的类视图、扩展类、视图集来简化视图的编写工作。REST framework还提供了认证、权限、限流、过滤、分页、接口文档等功能支持。REST framework还提供了一个调试API接口的WEB可视化界面来方便查看测试接口
特点
提供了定义序列化器Serializer的方法,可以快速根据Django ORM或者其他自动序列化、反序列化
提供了丰富的类视图、Mixin扩展类、简化视图的编写
丰富的定制层级:函数视图、类视图、视图集合到自动生成API,满足各种需要
多种身份认证和权限和权限认证方式的支持:【jwt】
内置了限流系统,例如:某些投票设置,一天只能投一次票
直观的API web界面【方便我们调试开发api接口】
可扩展性,插件丰富
环境安装与配置
DRF需要一下依赖:
Python(3.5以上)
Django(2.2以上)
DRF是以Django子应用的方式提供的,所以我们可以直接利用已有的Django环境无需重新创建新的环境(若没有Django环境,是需要创建环境安装Django)
安装DRF
前提是已经安装了Django
"""install using pip..."""
pip install djangorestframework
"""add 'rest_framework' to 'INSTALLED_APPS' setting"""
INSTALLED_APPS = {
'rest_framework',
}
"""之后我们开发api接口需要操作数据,所以还需要安装pymysql"""
pip install pymysql
添加rest_framework应用
在settings.py的INSTALLED_APPS中添加‘rest_framework’
INSTALLED_APPS = {
'rest_framework',
}
接下来就可以使用DRF提供的功能进行api接口开发了,在项目中如果使用rest_framework框架实现API接口,主要有以下三个步骤:
将请求的数据(如JSON格式)转换为模型对象
操作数据库
将模型类对象转换为响应的数据(如JSON格式)
体验drf完全简写代码过程
1.创建模型操作类
from django.db import models
# Create your models here.
class Student(models.Model):
name = models.CharField(max_length=255, verbose_name='姓名')
sex = models.BooleanField(default=1, verbose_name='性别')
age = models.IntegerField(verbose_name='年龄')
classmate = models.CharField(max_length=5, verbose_name='班级编号')
description = models.TextField(max_length=1000, verbose_name='个性签名')
class Meta:
db_table = 'tb_student'
verbose_name = '学生'
verbose_name_plural = verbose_name
为了方便使用数据库,我们先创建一个数据库
# 启动数据库
net start mysql
# 进入数据库
MySQL -uroot -p123
# 创建数据库
create database students charset=utf8mb4
初始化数据库连接
# 安装pymysql
pip install pymysql
主引用中__init__.py 设置使用pymysql作为数据库驱动
import pymysql
pymysql.install_as_Mysqldb()
settings.py配置文件中设置mysql账号密码
DATABASES = {
"""
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
"""
"""这里配置mysql的相关数据"""
}
终端下,执行数据迁移
python mange.py makemigrations
python mange.py migrate