快速使用django-restframework
一 DRF使用要求
Python3.5以上
django2.2以上
参考视频:2022B站最牛逼DRF课程
二 准备工作
基本操作不演示
django版本3.2
准备数据库
创建一个app
python manage.py startapp test1
安装djangorestframework
pip install djangorestframework
准备好一个模型类用于数据测试(这里提供一个)
class TestModel(models.Model):
StudentNumber = models.CharField(max_length=12, verbose_name="学号")
Name = models.CharField(max_length=32, verbose_name="姓名")
Age = models.IntegerField( verbose_name="年龄")
Sex = models.BooleanField(default=True, verbose_name="性别")
我的项目结构展示
三 案例(使用DRF编写接口)
序列化流程
1.创建模型类
2.创建序列化器(serializers:用于将模型类转换为字典的工具)
3.编写视图
4.定义路由
5.测试
3.1在test1(我的案例app)下创建一个文件serializers.py作为当前app的序列化器
编写serializers.py内容
from rest_framework import serializers
from .models import TestModel # 将需要序列化的模型导入
# 序列化器能将模型类转换为字典
class TestModelSerializers(serializers.ModelSerializer):
class Meta:
model = TestModel # 传入需转换的模型类
fields = "__all__" # __al__转换所有字段 ,另一种写法可指定需要序列化的字段[“name”,"sex"]
3.2编写视图(使用djangorestframework的视图进行编写)
views.py
from rest_framework.viewsets import ModelViewSet # 导入framework提供的视图类
from .models import TestModel
from .serializers import TestModelSerializers
# Create your views here.
class TestView(ModelViewSet):
# 此处只需提供2个属性(ModelViewSet里为我们提供了增删改查等功能)
queryset = TestModel.objects.all() # 转换所有数据(筛选数据有兴趣的自己可以写)
serializer_class = TestModelSerializers # (序列化器指定)转换指定的字段,在序列化器里定义的
不用我们写返回,djangorestframework视图已经写好了
3.3主路由定义
from django.urls import path,include
from test1 import urls
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include('test1.urls')),
]
3.3定义子路由test的urls.py
from rest_framework.routers import DefaultRouter # 使用rest_framework生成路由
from . import views
router = DefaultRouter()
router.register("test1", views.TestView, basename="test1") # 为我们生成5个接口地址
urlpatterns = [] + router.urls # 拼接路由
四 测试接口
api目录
测试我们写的接口
自动加上id,通过访问单个id可获取单个数据 具备增删改查功能