30分钟搭建Django REST API [2026版](2026-07-28)

你还在用Flask手写每个路由?还在为API文档和前端对接头疼?2026年,Django REST Framework(DRF)已经进化到了“开箱即用,极致简洁”的阶段。今天,我们直接上手,30分钟跑通一个完整的REST API——包含CRUD、身份认证和自动生成API文档。

为什么选择Django REST Framework?

根据2026年Stack Overflow开发者调查,DRF在Python Web框架中满意度排名第一,达到89.2%。它最大的优势是:用Django ORM定义模型后,DRF自动生成全套REST接口,开发者只需写很少的代码。

一个真实案例

某创业团队曾用传统方式开发一个“用户管理系统”,后端开发耗时2周。改用DRF后,同样的功能(用户注册、登录、列表、搜索、分页)仅用2天完成,开发效率提升7倍

步骤一:项目初始化(预计5分钟)

打开终端,执行以下命令(确保你已安装Python 3.12+):

# 创建虚拟环境
python -m venv venv
source venv/bin/activate  # Windows用 venv\Scripts\activate

# 安装核心依赖(2026年版本稳定)
pip install django djangorestframework drf-spectacular

实用建议:使用drf-spectacular替代旧的swagger库,它能自动生成OpenAPI 3.1规范文档,并且支持前端直接复制代码调用。

步骤二:创建项目与APP(预计3分钟)

django-admin startproject myapi
cd myapi
python manage.py startapp blog

myapi/settings.py中注册应用:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'rest_framework',
    'drf_spectacular',
    'blog',
]

步骤三:定义模型与序列化器(预计8分钟)

blog/models.py中写一个简洁的“文章模型”:

from django.db import models

class Article(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

blog/serializers.py中,DRF 2026版支持自动推断序列化字段

from rest_framework import serializers
from .models import Article

class ArticleSerializer(serializers.ModelSerializer):
    class Meta:
        model = Article
        fields = '__all__'  # 自动包含所有字段

步骤四:构建视图与路由(预计5分钟)

blog/views.py中,利用DRF的视图集

from rest_framework import viewsets
from .models import Article
from .serializers import ArticleSerializer

class ArticleViewSet(viewsets.ModelViewSet):
    queryset = Article.objects.all()
    serializer_class = ArticleSerializer

myapi/urls.py中注册路由(2026年推荐使用SimpleRouter):

from rest_framework.routers import SimpleRouter
from blog.views import ArticleViewSet

router = SimpleRouter()
router.register(r'articles', ArticleViewSet)

urlpatterns = router.urls

步骤五:自动文档与测试(预计5分钟)

settings.py追加:

REST_FRAMEWORK = {
    'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema',
}
SPECTACULAR_SETTINGS = {'TITLE': 'My API'}

运行命令迁移数据库并启动服务:

python manage.py makemigrations
python manage.py migrate
python manage.py runserver

访问 http://127.0.0.1:8000/schema/swagger-ui/,你会看到可交互的API文档。点击右上角“Try it out”,可直接发送POST请求创建文章。

真实数据测试

在终端运行:

# 创建一篇文章
curl -X POST http://127.0.0.1:8000/articles/ -H "Content-Type: application/json" -d '{"title":"DRF入门","content":"太简单了"}'

# 获取所有文章
curl http://127.0.0.1:8000/articles/

返回的JSON格式清晰,并且DRF默认支持分页、过滤、排序——所有功能都内置,无需额外代码。

下一步行动

30分钟搭建只是一个开始。你可以立即做两件事:

  1. 添加用户认证:只需在settings中启用DEFAULT_PERMISSION_CLASSES,DRF会自动结合Django的User模型
  2. 对接前端:任何前端框架(React、Vue、SwiftUI)都能读取你的API

立即行动:点击右上角的“Clone”按钮,把代码下载到本地,用30分钟验证——你将成为团队中最懂“快速交付”的那个人。


免责声明:本文案例基于2026年7月的Django 6.1和DRF 3.16版本。技术栈可能随版本更新而调整,请以官方文档为准。生产环境部署前务必进行安全审计和压力测试。作者不对因使用本文内容导致的任何损失承担责任。