Skip to content

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

最佳实践

  1. 使用序列化器验证数据
  2. 合理设计 API 端点
  3. 实现适当的权限控制
  4. 使用分页提高性能
  5. 编写 API 文档

总结

DRF 提供了完整的 RESTful API 开发工具链,是 Django 生态中不可或缺的组件。