返回

快速入门 DjangoRestFramework,打造强大 RESTful API

开发工具

简介

Django 是一个流行的 Python Web 框架,它提供了许多有用的特性,使您可以快速轻松地构建 Web 应用。然而,Django 默认并不包含用于创建 RESTful API 的内置工具。

RESTful API 是一种遵循 REST(Representational State Transfer)原则的 API。RESTful API 通常使用 JSON 或 XML 等格式来传输数据,并使用 HTTP 方法(如 GET、POST、PUT 和 DELETE)来操作数据。

DRF 是一个用于 Django 的第三方库,它可以帮助您轻松地创建 RESTful API。DRF 提供了许多有用的特性,包括:

  • 内置的序列化器,可以将 Python 对象转换为 JSON 或 XML 等格式。
  • 内置的视图,可以处理 HTTP 请求并返回响应。
  • 内置的过滤器和分页,可以帮助您管理 API 的数据。
  • 内置的文档生成器,可以自动生成 API 文档。

安装

要安装 DRF,您可以使用 pip 命令:

pip install djangorestframework

使用

要使用 DRF,您首先需要在 Django 项目中创建一个新的应用。然后,您需要在该应用的 settings.py 文件中添加 DRF 的配置:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',
]

接下来,您需要在该应用中创建一个新的模型。例如,如果您要创建一个名为 Post 的模型,您可以使用以下命令:

python manage.py startapp blog

然后,您需要在该应用的 models.py 文件中定义 Post 模型:

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=200)
    body = models.TextField()
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

接下来,您需要在该应用中创建一个新的序列化器。序列化器用于将 Python 对象转换为 JSON 或 XML 等格式。例如,如果您要创建一个名为 PostSerializer 的序列化器,您可以使用以下命令:

python manage.py serializer PostSerializer

然后,您需要在该应用的 serializers.py 文件中定义 PostSerializer 序列化器:

from rest_framework import serializers

class PostSerializer(serializers.ModelSerializer):
    class Meta:
        model = Post
        fields = '__all__'

接下来,您需要在该应用中创建一个新的视图。视图用于处理 HTTP 请求并返回响应。例如,如果您要创建一个名为 PostViewSet 的视图,您可以使用以下命令:

python manage.py viewset PostViewSet

然后,您需要在该应用的 views.py 文件中定义 PostViewSet 视图:

from django.shortcuts import render

from rest_framework import viewsets

from .models import Post
from .serializers import PostSerializer

class PostViewSet(viewsets.ModelViewSet):
    queryset = Post.objects.all()
    serializer_class = PostSerializer

最后,您需要在该应用的 urls.py 文件中添加以下代码:

from django.urls import path, include

from . import views

urlpatterns = [
    path('posts/', views.PostViewSet.as_view({'get': 'list', 'post': 'create'})),
    path('posts/<int:pk>/', views.PostViewSet.as_view({'get': 'retrieve', 'put': 'update', 'delete': 'destroy'})),
]

现在,您已经可以使用 DRF 来创建 RESTful API 了。您可以使用以下命令来运行 Django 项目:

python manage.py runserver

然后,您可以在浏览器中访问以下 URL 来查看 API 文档:

http://127.0.0.1:8000/api/posts/

总结

DRF 是一个强大的 Python 库,可帮助您轻松地为 Django 项目创建 RESTful API。DRF 提供了许多有用的特性,使您可以快速轻松地构建 API。在本文中,我们介绍了 DRF 的基础知识,并通过示例来演示如何使用它来构建 API。