DRF思维导图
组件
- 模型(Model)
- 序列化器(Serializer)
- 视图(View)
- 路由(URL)
功能和工具
- 认证和授权
- 分页
- 过滤
- 搜索
- 限流
- 缓存
- 版本控制
- 文档化
主要流程
- 定义模型
- 定义序列化器
- 定义视图
- 定义路由
- 配置认证、授权等功能和工具
- 启动应用程序并测试API
优点和特点
- 基于Django框架,易于学习和使用
- 符合RESTful架构规范
- 支持丰富的功能和工具
- 可以灵活配置和扩展
- 提供了文档化和测试支持
- 社区活跃,有大量的资料和教程
上面内容是gpt写的。
演示主要流程
下面演示一下Django REST Framework的主要流程,包括定义模型、序列化器、视图、路由和测试API等步骤。
- 定义模型
首先,在models.py
文件中定义模型类,如下所示:
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=100)
description = models.TextField()
这里定义了一个名为Book
的模型类,它有三个字段:title
、author
和description
。
- 定义序列化器
接下来,在serializers.py
文件中定义序列化器类,如下所示:
from rest_framework import serializers
from .models import Book
class BookSerializer(serializers.ModelSerializer):
class Meta:
model = Book
fields = ['id', 'title', 'author', 'description']
这里定义了一个名为BookSerializer
的序列化器类,它将Book
模型序列化为JSON格式数据。序列化器类需要继承serializers.ModelSerializer
类,并指定模型类和字段列表。
- 定义视图
然后,在views.py
文件中定义视图类,如下所示:
from rest_framework import viewsets
from .models import Book
from .serializers import BookSerializer
class BookViewSet(viewsets.ModelViewSet):
queryset = Book.objects.all()
serializer_class = BookSerializer
这里定义了一个名为BookViewSet
的视图集类,它使用ModelViewSet
视图类来处理HTTP请求和响应。视图集类需要设定查询集和序列化器类。
- 定义路由
接下来,在urls.py
文件中定义路由,如下所示:
from django.urls import path, include
from rest_framework import routers
from .views import BookViewSet
router = routers.DefaultRouter()
router.register('books', BookViewSet)
urlpatterns = [
path('', include(router.urls)),
]
这里使用DRF提供的DefaultRouter
类来自动生成路由。router.register()
方法将BookViewSet
视图集注册到路由中,并指定API的路径前缀为books
。
- 测试API
最后,启动Django开发服务器,并使用浏览器或HTTP客户端发送HTTP请求来测试API。例如,在浏览器中访问http://localhost:8000/books/
即可获取所有书籍的列表。
以上就是Django REST Framework的主要流程,包括定义模型、序列化器、视图、路由和测试API等步骤。