Django REST framework:Python Web API 的事实标准

Django REST framework:Python Web API 的事实标准

Django REST framework 在 GitHub 上已经拿到 30,048 Star 了。

它是 Django 生态中最成熟的 API 开发框架,专门解决一件事:用 Python 快速构建规范、可维护的 REST API。

正文顶部截图

1、这玩意儿是干嘛的

Django REST framework(简称 DRF)是一套建立在 Django 之上的 API 开发工具包。它把 Django 的模型、ORM、认证系统全接上了 REST 接口,几行代码就能跑出一个带 CRUD 的 API。

核心能力集中在四个地方:

可浏览的 Web API。 DRF 内置了一个浏览器界面,开发者打开 API 地址就能直接看数据结构、测试接口、调试请求。对前后端联调来说,这比对着 Swagger 文档猜测参数舒服太多。

序列化系统。 DRF 的 Serializer 能把 Django 模型对象转成 JSON,也能把前端传来的 JSON 反序列化回模型。它同时支持 ORM 数据源和非 ORM 数据源,灵活性足够覆盖大多数场景。

认证和权限。 内置了多种认证策略,包括 Session、Token、OAuth1a、OAuth2。权限粒度可以精确到对象级别,配合 Django 自带的用户系统,开箱即用。

视图和路由。 ViewSet 把列表、详情、创建、更新、删除五个操作打包成一套逻辑,Router 自动把它们映射到 URL。你不用再手写十几条 urlpattern。

README区域截图

2、安装和上手

环境要求是 Python 3.10 以上,Django 4.2、5.x 或 6.0。官方只支持各系列的最新补丁版本。

安装:

pip install djangorestframework

INSTALLED_APPS 里加上 rest_framework,然后写一段最小示例:

from rest_framework import routers, serializers, viewsets
from django.contrib.auth.models import User

class UserSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = User
        fields = ["url", "username", "email", "is_staff"]

class UserViewSet(viewsets.ModelViewSet):
    queryset = User.objects.all()
    serializer_class = UserSerializer

router = routers.DefaultRouter()
router.register(r"users", UserViewSet)

把 router 挂进 urls.py,运行服务,打开浏览器访问 API 地址,就能看到可交互的接口界面。列表、详情、创建、修改、删除全部可用,权限按配置生效。

3、适合谁用

做 Python 后端、需要对外暴露 REST 接口的团队,DRF 几乎是默认选项。30K Star 的背后是十年以上的稳定维护,文档详尽,社区成熟,生产环境跑过无数项目。

如果你已经在用 Django 做 Web 开发,加一层 DRF 就能平滑过渡到 API 服务。如果你从零开始选型 Python API 框架,DRF 的综合成熟度值得优先考虑。

posted @ 2026-06-08 08:19  techfusion55  阅读(8)  评论(0)    收藏  举报