一、drf框架特点:
- 全称 Django REST framework
- 两大部分:序列化/反序列化 和 增删改查
- 序列化:把数据库数据提取出来变成python常用格式的过程,例如转成json格式这种
- 反序列化:把数据写入到数据库的过程,例如转成str这种,也就是去掉特殊的格式的意思
- 增加 : 校验请求数据 -> 执行反序列化过程 -> 保存数据库 -> 将保存的对象序列化并返回
- 删除:判断要删除的数据是否存在 -> 执行数据库删除
- 编辑:判断要修改的数据是否存在 -> 校验请求的数据 -> 执行反序列化过程 -> 保存数据库 -> 将保存的对象序列化并返回
- 查询:查询数据库 -> 将数据序列化并返回
- 序列化/反序列化:Serializer 方法 提供了很多牛逼的方法
二、drf框架使用:
- 下载安装:pip3 install djangorestframework -i https://pypi.douban.com/simple
- 配置:下载后在Django框架中的settings文件的INSTALLED_APPS中增加‘rest_framework’应用
- 创建序列化器文件:serializers.py,最好是在自己的应用下创建该文件,如我的是myapp目录,并在文件中输入如下内容
from rest_framework import serializers
from myapp.models import *class DB_CASE_Serializer(serializers.ModelSerializer):class Meta:model = DB_CASE # model.py中的具体的表名fields = '__all__' # 代表该表的所有字段都遵循drf规则
- 回到views.py中,新建该表的视图函数
from rest_framework.viewsets import ModelViewSet
from myapp.serializers import *class DB_CASE_ViewSet(ModelViewSet):queryset = DB_CASE.objects.all() # 查询集serializer_class = DB_CASE_Serializer #序列号器
- 去urls.py中设置自动路由
from rest_framework.routers import DefaultRouterrouter = DefaultRouter() # 可以处理视图的路由器
router.register(r'db_case', DB_CASE_ViewSet) # 向路由器中注册视图集,db_case就是具体的路由,DB_CASE_ViewSet是view.py中的视图函数,后续想增加新的路由,只需要复制这一行改下路由和视图函数就行
urlpatterns += router.urls # 将路由器中的路由信息追到到django的路由列表中
三、drf框架调试
- 启动项目的Django服务,浏览器上输入127.0.0.1:8000/db_case(这个路由就是刚刚上面设置的那个接口路由) ,可以看到调试的页面
- 返回体格式符合预期,底部post请求可以添加新的数据
- 进入路由 /db_case/1 可以访问具体单一的数据
- 底部输入字段触发put请求可以修改该条数据内容
- 具体数据点击delete按钮可以删除
至此,drf自动搭建完成,后续可以通过以下请求方式进行增删改查:
查全部 :/db_case (前端用GET方法请求)
查单独:/db_case/${具体id}(前端用GET方法请求)
修改: /db_case/${具体id} (前端用PUT方法请求)
新增: /db_case (前端用POST方法请求)
删除: /db_case/${具体id} (前端用DELETE方法请求)