DRF 快速入门:Django REST Framework 指南 – wiki大全

My apologies, I’m encountering issues with tool availability. I cannot directly write files using the tools I have. Instead, I will provide the article content directly in this response as a Markdown block.

“`markdown

DRF 快速入门:Django REST Framework 指南

Django REST Framework (DRF) 是一个功能强大且灵活的工具包,用于构建 Web API。它建立在 Django Web 框架之上,使得创建健壮、可扩展的 RESTful API 变得轻而易举。本文将引导您完成 DRF 的快速入门,涵盖从安装到构建第一个 API 的所有基本步骤。

什么是 Django REST Framework?

DRF 旨在让开发者能够快速构建 RESTful API。它提供了一系列开箱即用的功能,包括:

  • 序列化器 (Serializers):将 Django 模型实例或其他数据类型转换为可渲染为 JSON、XML 等格式的 Python 数据类型。反之亦然。
  • 视图 (Views):处理 HTTP 请求和响应,可以基于函数或类。DRF 提供了通用的类视图,极大地简化了开发。
  • 路由 (Routers):自动为视图集生成 URL 模式。
  • 身份验证 (Authentication):多种身份验证方案(如 Token、Session、Basic)。
  • 权限 (Permissions):控制用户对 API 的访问权限。
  • 限流 (Throttling):控制请求速率。
  • 分页 (Pagination):处理大型数据集的分页。
  • 渲染器 (Renderers):定义 API 如何响应不同内容类型(如 JSON、HTML)。

快速入门

1. 安装 DRF

首先,确保您已经安装了 Django。然后,通过 pip 安装 Django REST Framework:

bash
pip install djangorestframework

2. 添加到 Django 项目

在您的 Django 项目的 settings.py 文件中,将 rest_framework 添加到 INSTALLED_APPS

“`python

settings.py

INSTALLED_APPS = [
# …
‘rest_framework’,
]
“`

3. 创建一个 Django 应用

如果您还没有,创建一个新的 Django 应用:

bash
python manage.py startapp myapi

并将 myapi 添加到 INSTALLED_APPS

4. 定义模型 (Model)

myapi/models.py 中定义一个简单的模型,例如 Book

“`python

myapi/models.py

from django.db import models

class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=100)
published_date = models.DateField()
isbn = models.CharField(max_length=13, unique=True)

def __str__(self):
    return self.title

“`

运行数据库迁移:

bash
python manage.py makemigrations
python manage.py migrate

5. 创建序列化器 (Serializer)

序列化器负责将 Book 模型实例转换为 JSON 等格式。在 myapi 应用中创建一个 serializers.py 文件:

“`python

myapi/serializers.py

from rest_framework import serializers
from .models import Book

class BookSerializer(serializers.ModelSerializer):
class Meta:
model = Book
fields = ‘all‘ # 或指定您想要的字段,例如: [‘id’, ‘title’, ‘author’]
“`

ModelSerializer 提供了一种便捷的方式来自动从 Django 模型创建序列化器。

6. 创建视图 (View)

DRF 提供了多种视图类型。对于快速入门,我们将使用 ModelViewSet,它提供了 CRUD (创建、读取、更新、删除) 操作的完整功能。在 myapi/views.py 中:

“`python

myapi/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
“`

7. 配置 URL 路由

为了让 API 可访问,我们需要配置 URL。在 myapi 应用中创建一个 urls.py 文件:

“`python

myapi/urls.py

from django.urls import path, include
from rest_framework.routers import DefaultRouter
from .views import BookViewSet

router = DefaultRouter()
router.register(r’books’, BookViewSet)

urlpatterns = [
path(”, include(router.urls)),
]
“`

然后,在您的项目的 urls.py 中包含 myapi 的 URL:

“`python

your_project_name/urls.py

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
path(‘admin/’, admin.site.urls),
path(‘api/’, include(‘myapi.urls’)), # 将 DRF API 挂载到 /api/ 路径
]
“`

8. 运行开发服务器并测试

现在,您可以运行 Django 开发服务器:

bash
python manage.py runserver

打开浏览器并访问 http://127.0.0.1:8000/api/books/。您将看到 DRF 提供的交互式 API 浏览界面。您可以:

  • GET:获取所有书籍列表。
  • POST:在页面底部表单中添加新书籍。
  • 点击某个书籍的 URL (例如 http://127.0.0.1:8000/api/books/1/) 进行 GET (详情)PUT (更新)PATCH (部分更新)DELETE 操作。

总结

通过以上步骤,您已经成功搭建了一个基本的 Django REST Framework API。DRF 的强大之处在于其可扩展性和丰富的功能集。这只是一个开始,您可以进一步探索:

  • 身份验证与权限:保护您的 API。
  • 自定义序列化器字段:处理复杂数据结构。
  • 过滤器和搜索:提供更灵活的数据查询。
  • 分页:优化大型数据集的加载。
  • 测试 API:确保 API 的质量。

DRF 是构建现代 Web API 的绝佳选择,希望这篇快速入门指南能帮助您踏上 DRF 开发之旅!
“`

滚动至顶部