Django框架中使用drf框架开发

一、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 DefaultRouter


router = 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方法请求)

猜你喜欢

转载自blog.csdn.net/weixin_65784341/article/details/132675479