DRF之通过GenericAPIView的视图子类实现数据的增删改查接口
1、安装DRF
1 | pip install djangorestframework |
2、将DRF注册到APP中
1 2 3 4 5 6 7 8 9 10 | INSTALLED_APPS = [ 'django.contrib.admin' , 'django.contrib.auth' , 'django.contrib.contenttypes' , 'django.contrib.sessions' , 'django.contrib.messages' , 'django.contrib.staticfiles' , 'app.apps.AppConfig' , 'rest_framework' , # 将DRF注册到APP中 ] |
3、定义自己的模型类(数据表)
1 2 3 4 5 6 7 8 9 10 | from django.db import models class Book(models.Model): id = models.AutoField(primary_key = True ) name = models.CharField(max_length = 32 ) pubDate = models.DateField() author = models.CharField(max_length = 32 ) class Meta: db_table = "book" |
4、定义序列化器
1 2 3 4 5 6 7 8 9 10 11 12 | from rest_framework import serializers # 定义序列化器 # BookSerializer为定义的序列化器名 # 需要继承:serializers.ModelSerializer类 class BookSerializer(serializers.ModelSerializer): class Meta: # model = Book:表示使用Book模型类的数据库表 model = Book # fields = "__all__":表示使用表中的所有字段 fields = "__all__" |
5、定义路由
1 2 3 4 5 6 7 8 9 10 11 12 13 | from django.urls import path, re_path from app.views import BookView from app.views import BookDetailView urlpatterns = [ path( 'admin/' , admin.site.urls), path( 'book/' , BookView.as_view()), re_path( 'book/(?P<pk>\d+)/' , BookDetailView.as_view()), ] |
6、定义视图类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | # 需要导入generics from rest_framework import generics # BookView视图:继承generics.ListCreateAPIView # 实现:查看所有数据 和 新增数据 class BookView(generics.ListCreateAPIView): # queryset:拿到Book表的所有数据 queryset = Book.objects. all () # serializer_class:指定使用哪一个序列化器 serializer_class = BookSerializer # BookDetailView视图:继承generics.RetrieveUpdateDestroyAPIView # 实现:查看某一条数据、更新数据、删除数据 class BookDetailView(generics.RetrieveUpdateDestroyAPIView): queryset = Book.objects. all () serializer_class = BookSerializer |
7、到此,接口实现完成
8、通过浏览器访问接口
9、通过postman工具访问接口
10、请求方式
get:查看
post:新增
put:更新
delete:删除
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现