1、DRF(Django Rest Framework)
Django REST framework是一个建立在Django基础之上的Web 应用开发框架,本质上就是一个内置在django里面的子应用,可以快速的开发REST API接口应用。 在REST framework中,提供了序列化器对象Serialzier的定义,可以帮助我们简化序列化与反序列化的过程,不仅如此,还提供丰富的类视图,扩展类,视图集来简化视图的编写工作。 REST framework还提供了认证、权限、限流、过滤、分页、接口文档等功能支持。 REST framework提供了一个用于测试API接口 的可视化Web界面【可以浏览器直接访问接口,drf的api接口测试页面非常美观】。
2、环境安装与配置
2.1 安装DRF
DRF需要以下依赖:
Python
Django
pip install djangorestframework
2.2 创建项目
django-admin startproject 项目名称
2.3 添加rest_framework应用
在settings.py的INSTALLED_APPS中添加’rest_framework’。
INSTALLED_APPS = [
...
'rest_framework',
]
3、配置开发环境
3.1 创建子应用
python manage.py startapp api_xxx
3.2 创建模型操作类
model.py
from django.db import models
class Student(models.Model):
name = models.CharField(null=False, max_length=32, verbose_name="姓名")
sex = models.BooleanField(default=True, verbose_name="性别")
age = models.IntegerField(verbose_name="年龄")
class_num = models.CharField(max_length=5, verbose_name="班级编号")
description = models.TextField(max_length=1000, verbose_name="个性签名")
class Meta:
db_table="tb_students"
verbose_name="学生"
verbose_name_plural=verbose_name
def __str__(self):
return self.name
3.3 创建序列化器
serializers.py(如果路径下没有,新建该文件)
from rest_framework import serializers
from .models import Sample
class SampleSerializer(serializers.ModelSerializer):
class Meta:
model = Sample
fields = '__all__'
3.4 编写视图
queryset 指明该视图集在查询数据时使用的查询集 serializer_class 指明该视图在进行序列化或反序列化时使用的序列化器
from rest_framework.viewsets import ModelViewSet
from .models import Student
from .serializers import StudentModelSerializer
class StudentViewSet(ModelViewSet):
queryset = Student.objects.all()
serializer_class = StudentModelSerializer
3.5 定义路由
from . import views
from rest_framework.routers import DefaultRouter
urlpatterns = []
router = DefaultRouter()
router.register('students', views.StudentViewSet)
urlpatterns += router.urls
3.6 加载路由
最后把students子应用中的路由文件加载到总路由文件中.
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path("student/",include("students.urls")),
]
3.7 运行测试
python manage.py runserver
在浏览器中输入网址127.0.0.1:8000,可以看到DRF提供的API Web浏览页面
|