目录
在前后端分离架构日益普及的今天,构建一套规范、高效的 API 接口成为后端开发的核心任务。Django REST Framework(DRF)作为基于 Django 的强大工具包,能快速实现符合 RESTful 规范的 API,本文将带你从 0 开始,一步步搭建完整的增删改查接口。
一、RESTful API 与 DRF 简介
RESTful API 是一种软件架构风格,通过 HTTP 方法(GET/POST/PUT/DELETE)对资源进行操作,具有无状态、可缓存等特点。DRF 则是 Django 生态中用于构建 RESTful API 的利器,它提供了序列化、认证、权限控制等功能,让开发者无需重复造轮子。
二、环境搭建与初始化
创建项目与应用
django-admin startproject myproject cd myproject python manage.py startapp stuapi # 新建API应用
安装依赖
pip install djangorestframework # 安装DRF
配置 settings.py
在INSTALLED_APPS
中添加rest_framework
和stuapi
:INSTALLED_APPS = [ # ...其他应用 'rest_framework', 'stuapi', ]
三、核心步骤:实现基础 CRUD 接口
以 “学生信息管理” 为例,实现完整的 API 功能。
1. 定义数据模型(models.py)
from django.db import models
class Student(models.Model):
name = models.CharField(max_length=100, verbose_name="姓名")
age = models.IntegerField(verbose_name="年龄")
sex = models.BooleanField(default=True, verbose_name="性别")
classmate = models.CharField(max_length=50, verbose_name="班级")
class Meta:
verbose_name = "学生"
verbose_name_plural = verbose_name
执行数据迁移:
python manage.py makemigrations
python manage.py migrate
2. 创建序列化器(serializers.py)
序列化器负责数据的转换(模型对象→JSON)和验证,新建stuapi/serializers.py
:
from rest_framework import serializers
from .models import Student
class StudentSerializer(serializers.ModelSerializer):
# 自动映射模型字段,简化代码
class Meta:
model = Student
fields = "__all__" # 序列化所有字段
read_only_fields = ["id"] # id字段只读(自动生成)
3. 编写视图(views.py)
使用 DRF 的ModelViewSet
快速实现 CRUD:
from rest_framework.viewsets import ModelViewSet
from .models import Student
from .serializers import StudentSerializer
class StudentViewSet(ModelViewSet):
queryset = Student.objects.all() # 查询集
serializer_class = StudentSerializer # 关联序列化器
4. 配置 URL 路由
子路由(stuapi/urls.py):
from django.urls import path, include from rest_framework.routers import DefaultRouter from .views import StudentViewSet router = DefaultRouter() # 自动生成路由 router.register(r'students', StudentViewSet) # 注册视图集 urlpatterns = [ path('', include(router.urls)), ]
主路由(myproject/urls.py):
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('api/', include('stuapi.urls')), # 挂载API路由 ]
四、启动与测试
运行项目:
python manage.py runserver
访问http://127.0.0.1:8000/api/students/
,即可看到 DRF 自动生成的可视化接口页面,支持通过表单或 JSON 格式进行:
- GET:查询学生列表或单个学生
- POST:新增学生
- PUT/PATCH:更新学生信息
- DELETE:删除学生
五、总结
DRF 通过 “序列化器 + 视图集 + 路由” 的组合,极大简化了 RESTful API 的开发流程。只需几行代码,就能实现完整的增删改查功能,且自带可视化调试界面,非常适合快速迭代开发。下一篇将深入讲解序列化器的高级用法,敬请关注。