**最完整、最简单、能直接运行的 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"
    }
]

总结(超简单)

  1. Model:定义表
  2. Serializer:转 JSON
  3. ViewSet:自动生成增删改查
  4. Router:自动生成 URL
  5. 运行 → 直接用

这就是 DRF 最标准、最常用的写法

posted @ 2026-05-28 16:40  ham0921  阅读(19)  评论(0)    收藏  举报