📅  最后修改于: 2023-12-03 15:14:43.460000             🧑  作者: Mango
Django REST框架是基于Django框架开发的,用于构建RESTful API的强大工具。它使得构建高质量、易于测试、易于维护和易于扩展的API变得十分容易。本文将对Django REST框架进行介绍,并提供一些示例代码以供参考。
Django REST框架提供了一些重要的功能和特性,包括:
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',
],
}
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/。