**最完整、最简单、能直接运行的 DRF 接口实战示例**
最完整、最简单、能直接运行的 DRF 接口实战示例
从安装 → 模型 → 序列化 → 视图 → 路由 → 测试,一步到位!
一、先安装 DRF
pip install djangorestframework
二、创建项目 + 注册 APP
# 创建项目
django-admin startproject drf_demo
# 进入项目
cd drf_demo
# 创建应用
python manage.py startapp api
在 settings.py 注册:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework', # DRF
'api', # 你的APP
]
三、写 models(models.py)
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100) # 书名
author = models.CharField(max_length=50) # 作者
price = models.DecimalField(max_digits=5, decimal_places=2) # 价格
def __str__(self):
return self.title
四、写序列化器(serializers.py)
把模型 → JSON
from rest_framework import serializers
from .models import Book
class BookSerializer(serializers.ModelSerializer):
class Meta:
model = Book
fields = '__all__' # 所有字段都返回
五、写视图(views.py)
自动生成 增删改查 全部接口
from rest_framework import viewsets
from .models import Book
from .serializers import BookSerializer
class BookViewSet(viewsets.ModelViewSet):
# 查询所有数据
queryset = Book.objects.all()
# 使用的序列化器
serializer_class = BookSerializer
六、写路由(urls.py)
from django.contrib import admin
from django.urls import path, include
from rest_framework.routers import DefaultRouter
from api.views import BookViewSet
# 自动生成接口路由
router = DefaultRouter()
router.register(r'books', BookViewSet) # 接口地址:/books/
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include(router.urls)), # 所有接口以 /api/ 开头
]
七、运行!
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
八、访问接口(超级好用的可视化页面)
打开浏览器访问:
👉 http://127.0.0.1:8000/api/books/
你会看到:
- GET:列表
- POST:添加数据
- PUT:修改
- DELETE:删除
全部自动生成!
九、这个项目包含哪些接口?
| 请求方式 | 地址 | 功能 |
|---|---|---|
| GET | /api/books/ | 获取所有书籍 |
| POST | /api/books/ | 添加书籍 |
| GET | /api/books/1/ | 获取id=1的书 |
| PUT | /api/books/1/ | 修改id=1的书 |
| DELETE | /api/books/1/ | 删除id=1的书 |
十、返回的数据格式(JSON)
[
{
"id": 1,
"title": "Python入门",
"author": "张三",
"price": "29.99"
}
]
总结(超简单)
- Model:定义表
- Serializer:转 JSON
- ViewSet:自动生成增删改查
- Router:自动生成 URL
- 运行 → 直接用
这就是 DRF 最标准、最常用的写法!
浙公网安备 33010602011771号