📌  相关文章
📜  django rest - Python (1)

📅  最后修改于: 2023-12-03 15:14:43.460000             🧑  作者: Mango

Django REST - 强大的Python框架

Django REST框架是基于Django框架开发的,用于构建RESTful API的强大工具。它使得构建高质量、易于测试、易于维护和易于扩展的API变得十分容易。本文将对Django REST框架进行介绍,并提供一些示例代码以供参考。

简介

Django REST框架提供了一些重要的功能和特性,包括:

  • 序列化:轻松地将Django模型转换为JSON、XML等格式
  • 视图集:快速创建常见视图,如列表、详情等
  • 认证和权限:提供多种认证和权限选项,方便控制API的访问权限
  • 请求/响应处理:支持多种数据解析和内容协商,以及处理常见的HTTP异常
  • API文档:提供自动生成文档的工具,简化API的文档维护
安装

Django REST框架是基于Django框架的,因此需要先安装Django。可以使用Python的包管理工具pip安装:

pip install Django

接着安装Django REST框架:

pip install djangorestframework
快速上手

下面通过一个简单的例子来了解如何使用Django REST框架创建API。

首先,需要定义一个Django模型,用于存储数据。在这个例子中,我们创建一个名为Book的模型,它包含title和author两个字段:

from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=200)
    author = models.CharField(max_length=200)

然后,需要为该模型创建一个序列化器,用于将模型转换为JSON格式。在这个例子中,我们创建了一个名为BookSerializer的序列化器:

from rest_framework import serializers
from .models import Book

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

接下来,需要为API创建一个视图集。在这个例子中,我们需要一个视图集来处理图书列表和详情视图。我们可以使用Django REST框架提供的ModelViewSet来快速创建视图集:

from rest_framework import viewsets
from .models import Book
from .serializers import BookSerializer

class BookViewSet(viewsets.ModelViewSet):
    queryset = Book.objects.all()
    serializer_class = BookSerializer

最后,需要将视图集注册到Django的URLconf中:

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

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

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

现在,我们已经创建了一个简单的API,可以使用GET、POST、PUT、DELETE等HTTP方法访问books资源。

认证和权限

Django REST框架提供了多种认证和权限选项,可以轻松地控制API的访问权限。例如,可以使用Token认证来限制只有拥有有效Token的用户才能访问API:

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.TokenAuthentication',
    ],
    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework.permissions.IsAuthenticated',
    ],
}
API文档

Django REST框架提供了自动生成API文档的工具,可以轻松地维护API文档。例如,可以使用Swagger UI来浏览API文档:

urlpatterns = [
    path('', include(router.urls)),
    path('swagger/', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
]
结语

Django REST框架是一个强大的Python框架,用于构建RESTful API。它提供了多种功能和特性,例如序列化、视图集、认证和权限、请求/响应处理等。通过本文的介绍,你应该已经了解如何使用Django REST框架创建API。如果你想深入学习Django REST框架,可以参考官方文档:https://www.django-rest-framework.org/。