Appearance
Django REST Framework API 开发实践
简介
Django REST Framework (DRF) 是基于 Django 的强大 Web API 框架。
核心组件
序列化器 (Serializers)
python
from rest_framework import serializers
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ['id', 'username', 'email']
read_only_fields = ['id']视图集 (ViewSets)
python
from rest_framework import viewsets
from rest_framework.permissions import IsAuthenticated
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
permission_classes = [IsAuthenticated]路由配置
python
from rest_framework.routers import DefaultRouter
router = DefaultRouter()
router.register(r'users', UserViewSet)
urlpatterns = [
path('api/', include(router.urls)),
]权限控制
python
from rest_framework.permissions import BasePermission
class IsOwnerOrReadOnly(BasePermission):
def has_object_permission(self, request, view, obj):
if request.method in ['GET', 'HEAD', 'OPTIONS']:
return True
return obj.owner == request.user最佳实践
- 使用序列化器验证数据
- 合理设计 API 端点
- 实现适当的权限控制
- 使用分页提高性能
- 编写 API 文档
总结
DRF 提供了完整的 RESTful API 开发工具链,是 Django 生态中不可或缺的组件。