encode

django-rest-framework

Django REST framework 是基于 Django 构建 Web API 的工具包,提供可浏览 API、序列化、认证与权限控制,快速把 Django 项目变成 REST 服务。

3.18.3
发布于
22 天前
30,210
星标
278
下载
同步于
8 天前

最新版本

3.18.32026年10月7日 05:34
下载慢?可在上方随时切换镜像源

项目说明

项目概述

Django REST framework(DRF)是一个强大而灵活的 Django Web API 开发工具包。它在 Django 之上提供序列化器、视图集、路由与认证体系,把模型数据快速暴露成 REST 接口。其标志性的可浏览 API 界面让开发者直接在浏览器里查看、调试接口,大幅提升开发与联调效率。

项目 内容
语言 Python
基础框架 Django
类型 Web API 工具包
许可 BSD

把 Django 模型变成浏览器里可直接调试的 REST 接口。

主要功能

  • 可浏览 API:自带 Web 界面,浏览器中直接查看与测试接口
  • 序列化体系:支持 ORM 与非 ORM 数据源的验证、序列化与反序列化
  • 认证机制:内置 Session、Token 等认证,可扩展 OAuth1a 与 OAuth2
  • 权限控制:细粒度权限类,可按请求、按对象控制访问
  • 通用视图:Generic views 与 ViewSet 快速实现增删改查
  • 自动路由:Router 自动生成 RESTful URL 配置
  • 限流节流:内置接口限流策略,保护后端资源
  • 分页支持:多种分页方案开箱即用

适用人群

  • Django 开发者
  • 需要为移动端或前端提供 API 的后端团队
  • 构建开放平台接口的开发者
  • 企业内部系统集成工程师
  • 学习 REST API 设计的学习者

快速上手

  1. 安装依赖:pip install django djangorestframework
  2. 创建项目并迁移数据库
django-admin startproject example .
python manage.py migrate
python manage.py createsuperuser
  1. 在 settings.py 中注册应用
INSTALLED_APPS = [
    'rest_framework',
]
  1. 定义序列化器与视图集,配置路由
from django.contrib.auth.models import User
from django.urls import include, path
from rest_framework import routers, serializers, viewsets

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)

urlpatterns = [
    path('', include(router.urls)),
]
  1. 启动服务:python manage.py runserver,浏览器打开 http://127.0.0.1:8000/

核心优势

  • 开发体验佳:可浏览 API 让联调不再依赖前端页面
  • 高度可定制:从序列化器到视图、权限都可逐层替换
  • 生态成熟:文档详尽,社区方案覆盖绝大多数业务场景
  • 与 Django 无缝衔接:复用 ORM、认证与配置体系

系统要求

项目 要求
语言 Python 3.10+
框架 Django 5.2 及以上
操作系统 Linux、macOS、Windows

注意事项

  • 版本配套:官方仅支持各 Python 与 Django 系列的最新补丁版本,升级时注意匹配
  • 查询性能:ViewSet 通用逻辑可能引入额外查询,注意用 select_related 与 prefetch_related 优化

历史版本

排序