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
posted @ 2022-10-16 15:06  张张包~  阅读(65)  评论(0编辑  收藏  举报