使用Django REST Framework构建RESTful API – #Django REST Framework

 
更多

简介

在现代的Web应用程序中,RESTful API(Representational State Transfer)是开发者们常用的方式之一。它提供了一个灵活的方式来构建和管理应用程序的后端接口,允许不同的客户端(例如Web、移动设备等)与数据进行交互。

Django REST Framework是一个基于Django的强大工具包,专门用于构建高性能、灵活且可扩展的API。它提供了许多功能,例如身份验证、序列化、路由和视图等,使我们能够更快地开发并提供一个高质量的RESTful API。

在本博客中,我们将探索如何使用Django REST Framework构建RESTful API,并编写一个简单但功能完整的示例应用程序。

环境设置

首先,我们需要设置一个虚拟环境,并安装所需的依赖。打开终端并执行以下命令:

$ mkdir myapi
$ cd myapi
$ python3 -m venv env
$ source env/bin/activate

现在,我们进入了我们的虚拟环境。现在,我们可以安装Django和Django REST Framework:

(env) $ pip install django djangorestframework

让我们创建一个新的Django项目:

(env) $ django-admin startproject myapi .

创建我们的API

首先,我们需要创建一个Django应用程序来承载我们的API。在终端中执行以下命令:

(env) $ python manage.py startapp myapp

我们还需要在Django的设置中注册我们的应用程序。打开myapi/settings.py文件,并将myapp应用程序添加到INSTALLED_APPS列表中:

INSTALLED_APPS = [
    ...
    'myapp',
]

现在我们可以开始编写API代码。

打开myapp/models.py文件,并添加一个简单的模型:

from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.CharField(max_length=100)
    publication_date = models.DateField()

    def __str__(self):
        return self.title

接下来,我们需要为我们的模型创建一个序列化器。打开myapp/serializers.py文件,并添加以下内容:

from rest_framework import serializers
from .models import Book

class BookSerializer(serializers.ModelSerializer):
    class Meta:
        model = Book
        fields = ('title', 'author', 'publication_date')

接下来,我们需要定义我们的视图。打开myapp/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

现在,我们需要为我们的API定义一些URL。打开myapi/urls.py文件,并将以下内容添加到文件末尾:

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

router = routers.DefaultRouter()
router.register(r'books', BookViewSet)

urlpatterns = [
    ...
    path('api/', include(router.urls)),
]

运行我们的API

我们已经完成了所有必要的设置工作,现在我们可以运行我们的API了。在终端中执行以下命令:

(env) $ python manage.py makemigrations
(env) $ python manage.py migrate
(env) $ python manage.py runserver

在浏览器中访问http://127.0.0.1:8000/api/books/,您将看到一个空的API响应。现在,我们可以尝试使用POST方法来添加一本书籍:

POST http://127.0.0.1:8000/api/books/
Content-Type: application/json

{
    "title": "Django for Beginners",
    "author": "William S. Vincent",
    "publication_date": "2020-01-01"
}

您将获得一个成功的响应,并返回这本书的详细信息。

我们还可以使用GET方法来检索书籍列表:

GET http://127.0.0.1:8000/api/books/

您将获得包含所有书籍的列表。

结论

在本博客中,我们使用Django REST Framework成功地构建了一个RESTful API。我们将模型序列化为JSON,并通过视图和URL路由处理了请求。使用Django REST Framework,我们能够更快速、更高效地开发和测试我们的API。

我希望这篇博客对你理解Django REST Framework和RESTful API的构建有所帮助。谢谢阅读!

打赏

本文固定链接: https://www.cxy163.net/archives/7120 | 绝缘体

该日志由 绝缘体.. 于 2022年02月19日 发表在 未分类 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 使用Django REST Framework构建RESTful API – #Django REST Framework | 绝缘体
关键字: , , , ,

使用Django REST Framework构建RESTful API – #Django REST Framework:等您坐沙发呢!

发表评论


快捷键:Ctrl+Enter