当前位置: 首页> 财经> 创投人物 > 什么叫网页_静态网页制作实验报告_湘潭高新区最新新闻_站长网站工具

什么叫网页_静态网页制作实验报告_湘潭高新区最新新闻_站长网站工具

时间:2025/7/11 22:36:06来源:https://blog.csdn.net/qq_36287830/article/details/143421373 浏览次数:0次
什么叫网页_静态网页制作实验报告_湘潭高新区最新新闻_站长网站工具

使用Django REST framework构建RESTful API

      • Django REST framework简介
      • 安装Django REST framework
      • 创建Django项目
      • 创建Django应用
      • 配置Django项目
      • 创建模型
      • 迁移数据库
      • 创建序列化器
      • 创建视图
      • 配置URL
      • 配置全局URL
      • 配置认证和权限
      • 测试API
      • 使用Postman测试API
      • 分页
      • 过滤和排序
      • 自定义视图
      • 异常处理
      • 文档
      • 总结

Django REST framework (DRF) 是一个功能强大的工具包,用于构建Web API。它与Django框架无缝集成,提供了许多开箱即用的功能,如序列化、认证、权限、分页和视图等。本文将详细介绍如何使用Django REST framework构建RESTful API。

Django REST framework简介

Django REST framework 是一个用于构建Web API的框架,它旨在使构建API变得简单和快速。DRF提供了许多强大的功能,如自动化的API浏览界面、序列化器、视图集、路由等。

安装Django REST framework

首先,需要安装Django和Django REST framework。

pip install django djangorestframework

创建Django项目

使用Django创建一个新的项目。

django-admin startproject myproject
cd myproject

创建Django应用

在项目中创建一个新的应用。

python manage.py startapp myapp

配置Django项目

在项目的 settings.py文件中,添加 rest_framework和新创建的应用到 INSTALLED_APPS列表中。

INSTALLED_APPS = [# ...'rest_framework','myapp',
]

创建模型

models.py文件中定义一个简单的模型。

from django.db import modelsclass Book(models.Model):title = models.CharField(max_length=100)author = models.CharField(max_length=100)published_date = models.DateField()price = models.DecimalField(max_digits=5, decimal_places=2)def __str__(self):return self.title

迁移数据库

运行迁移命令以创建数据库表。

python manage.py makemigrations
python manage.py migrate

创建序列化器

serializers.py文件中创建一个序列化器。

from rest_framework import serializers
from .models import Bookclass BookSerializer(serializers.ModelSerializer):class Meta:model = Bookfields = ['id', 'title', 'author', 'published_date', 'price']

创建视图

views.py文件中创建视图。

from rest_framework import viewsets
from .models import Book
from .serializers import BookSerializerclass BookViewSet(viewsets.ModelViewSet):queryset = Book.objects.all()serializer_class = BookSerializer

配置URL

urls.py文件中配置URL路由。

from django.urls import path, include
from rest_framework.routers import DefaultRouter
from .views import BookViewSetrouter = DefaultRouter()
router.register(r'books', BookViewSet)urlpatterns = [path('', include(router.urls)),
]

配置全局URL

在项目的 urls.py文件中包含应用的URL配置。

from django.contrib import admin
from django.urls import path, includeurlpatterns = [path('admin/', admin.site.urls),path('api/', include('myapp.urls')),
]

配置认证和权限

settings.py文件中配置认证和权限。

REST_FRAMEWORK = {'DEFAULT_AUTHENTICATION_CLASSES': ['rest_framework.authentication.SessionAuthentication','rest_framework.authentication.BasicAuthentication',],'DEFAULT_PERMISSION_CLASSES': ['rest_framework.permissions.IsAuthenticated',],
}

测试API

启动Django开发服务器,访问API。

python manage.py runserver

打开浏览器,访问http://127.0.0.1:8000/api/books/,可以看到API的浏览界面。
Django REST framework API浏览界面示例

使用Postman测试API

可以使用Postman等工具来测试API的各个端点。

分页

settings.py文件中配置分页。

REST_FRAMEWORK = {'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination','PAGE_SIZE': 10
}

过滤和排序

views.py文件中配置过滤和排序。

from rest_framework import filtersclass BookViewSet(viewsets.ModelViewSet):queryset = Book.objects.all()serializer_class = BookSerializerfilter_backends = [filters.SearchFilter, filters.OrderingFilter]search_fields = ['title', 'author']ordering_fields = ['published_date', 'price']

自定义视图

可以创建自定义视图来处理特定的业务逻辑。

from rest_framework.decorators import api_view
from rest_framework.response import Response@api_view(['GET'])
def book_list(request):books = Book.objects.all()serializer = BookSerializer(books, many=True)return Response(serializer.data)

异常处理

views.py文件中配置异常处理。

from rest_framework.exceptions import NotFoundclass BookViewSet(viewsets.ModelViewSet):queryset = Book.objects.all()serializer_class = BookSerializerdef retrieve(self, request, *args, **kwargs):try:return super().retrieve(request, *args, **kwargs)except Http404:raise NotFound(detail='Book not found')

文档

可以使用Swagger或Redoc等工具生成API文档。

pip install drf-yasg

urls.py文件中配置Swagger。

from django.urls import path, include
from rest_framework import permissions
from drf_yasg.views import get_schema_view
from drf_yasg import openapischema_view = get_schema_view(openapi.Info(title='My API',default_version='v1',description='Test description',terms_of_service='https://www.google.com/policies/terms/',contact=openapi.Contact(email='contact@myapi.local'),license=openapi.License(name='BSD License'),),public=True,permission_classes=(permissions.AllowAny,),
)urlpatterns = [path('admin/', admin.site.urls),path('api/', include('myapp.urls')),path('swagger/', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),path('redoc/', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),
]

总结

通过本文,你已经学习了如何使用Django REST framework构建RESTful API。我们介绍了Django REST framework的基本概念、安装方法、创建Django项目和应用、定义模型、创建序列化器、创建视图、配置URL、配置认证和权限、测试API、使用Postman测试API、分页、过滤和排序、自定义视图、异常处理、生成API文档等内容。掌握了这些知识,将有助于你在实际工作中更好地利用Django REST framework来构建高效、可靠的Web API。
使用Postman测试Django REST framework API示例

使用Django REST framework可以显著简化RESTful API的开发过程。

关键字:什么叫网页_静态网页制作实验报告_湘潭高新区最新新闻_站长网站工具

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: