返回

Django REST 框架之 RESTful API 创建指南

后端

Django REST 框架之 RESTful API 创建指南

前言

在现代 Web 开发中,RESTful API 已成为构建应用程序和服务的常用方法。RESTful API 提供了一种可预测且一致的方式来与您的应用程序交互,并允许您轻松地从不同的客户端访问数据。

Django 是一个流行的 Python Web 框架,它提供了强大的工具来构建 RESTful API。Django REST 框架是一个流行的 Django 库,它可以帮助您快速轻松地创建 RESTful API。

创建 Django 项目

首先,我们需要创建一个新的 Django 项目。您可以使用以下命令在命令行中创建新项目:

django-admin startproject my_project

然后,我们需要进入项目目录:

cd my_project

安装 Django REST 框架

接下来,我们需要安装 Django REST 框架。您可以使用以下命令在命令行中安装它:

pip install djangorestframework

创建模型

接下来,我们需要创建模型。模型是 Django 用于表示数据的类。在我们的例子中,我们将创建一个名为 Article 的模型。

from django.db import models

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

    def __str__(self):
        return self.title

创建序列化器

序列化器是 Django REST 框架用来将模型数据转换为 JSON 格式或其他格式的类。在我们的例子中,我们将创建一个名为 ArticleSerializer 的序列化器。

from rest_framework import serializers

class ArticleSerializer(serializers.ModelSerializer):
    class Meta:
        model = Article
        fields = ('id', 'title', 'content', 'author', 'created_at', 'updated_at')

创建视图

视图是 Django REST 框架用来处理 HTTP 请求的类。在我们的例子中,我们将创建一个名为 ArticleViewSet 的视图。

from django.contrib.auth.models import User
from rest_framework import viewsets, permissions

class ArticleViewSet(viewsets.ModelViewSet):
    queryset = Article.objects.all()
    serializer_class = ArticleSerializer
    permission_classes = [permissions.IsAuthenticated]

创建 URL 配置

接下来,我们需要在 Django 的 URL 配置文件中添加 URL 模式,以将请求路由到我们的视图。

from django.conf.urls import url, include
from rest_framework import routers

router = routers.DefaultRouter()
router.register(r'articles', ArticleViewSet)

urlpatterns = [
    url(r'^api/', include(router.urls)),
]

安装 JWT 认证

为了保护我们的 API,我们需要安装一个身份验证库。我们将在本例中使用 JWT(JSON Web Token)。您可以使用以下命令在命令行中安装它:

pip install djangorestframework-simplejwt

配置 JWT 认证

接下来,我们需要在 Django 的设置文件中配置 JWT 认证。

INSTALLED_APPS = [
    ...,
    'rest_framework_simplejwt',
]

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework_simplejwt.authentication.JWTAuthentication',
    ]
}

SIMPLE_JWT = {
    'AUTH_HEADER_TYPES': ('JWT',),
}

运行服务器

现在,我们可以运行 Django 服务器来测试我们的 API。您可以使用以下命令在命令行中运行服务器:

python manage.py runserver

测试 API

您可以使用 curl 命令来测试您的 API。例如,以下命令将获取所有文章:

curl http://127.0.0.1:8000/api/articles/

您可以使用以下命令来创建新文章:

curl -X POST -H "Content-Type: application/json" -d '{"title": "My new article", "content": "This is my new article."}' http://127.0.0.1:8000/api/articles/

结论

本指南向您展示了如何使用 Django REST 框架和 JWT 认证来创建 RESTful API。您可以使用此 API 从不同的客户端访问您的数据,并构建现代 Web 应用程序和服务。