Django REST framework之DRF-Django模型API映射增删改查扩展包

[复制链接]
查看: 29   回复: 0

314

主题

314

帖子

1757

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1757
封面3.jpg


在我们Django写接口得时候 写完 再写增删改查非常繁琐,于是就有了django框架得扩展包

这个扩展包(Django REST framework)的中文名字通常被称为“Django REST框架”或简称为“DRF”。在中文技术社区和文档中,这个名称被广泛接受和使用。DRF是一个基于Django的高级Python Web框架的扩展,专门用于构建Web API,它提供了丰富的功能和组件,以简化API的开发过程。

rest_framework,全称为Django REST framework(DRF),是一个强大且灵活的Django扩展包,它允许开发者快速构建Web API。DRF建立在Django框架之上,充分利用了Django的ORM(对象关系映射)和其他功能,同时提供了一系列工具和组件来简化API的开发过程。

核心组件和功能
  • 序列化器(Serializers)
    • 序列化器负责将复杂的数据类型(如Django模型实例)转换为Python基本数据类型(通常是字典),然后再转换为JSON、XML或其他内容格式。
    • 它们还负责数据验证和错误处理。
  • 视图(Views)
    • DRF提供了多种视图类,允许开发者以声明性的方式处理HTTP请求。
    • 这些视图类可以处理GET、POST、PUT、PATCH和DELETE等HTTP方法,对应于API的CRUD操作。
  • 路由(Routing)
    • DRF允许开发者以简单的方式定义API的URL结构。
    • 它提供了路由器类,可以自动从视图集(ViewSets)生成URL模式。
  • 认证和权限(Authentication & Permissions)
    • DRF支持多种认证方案,如会话认证、令牌认证、OAuth等。
    • 它还提供了权限类,允许开发者控制对API的访问。
  • 限制(Throttling)
    • 限制功能允许开发者对API的使用进行速率限制,以防止滥用。
  • 分页(Pagination)
    • 分页功能使得开发者可以轻松地管理大量数据的返回,提高API的响应速度和用户体验。
  • 版本控制(Versioning)
    • DRF提供了多种版本控制方案,允许开发者在不影响现有客户端的情况下引入新的API功能。
  • 格式处理(Formatting)
    • DRF支持多种内容格式,包括JSON、XML等,开发者可以轻松地配置API以返回所需的内容格式。
  • 过滤和排序(Filtering & Ordering)
    • DRF提供了多种过滤和排序选项,使得开发者可以灵活地控制返回给客户端的数据集。

使用场景
  • 构建RESTful API:DRF是构建RESTful API的理想选择,它提供了所有必要的工具和组件。
  • 移动应用后端:许多移动应用需要与服务器进行通信以获取数据或执行操作,DRF可以轻松地提供这些后端服务。
  • Web服务集成:DRF使得与其他Web服务的集成变得更加容易,无论是内部服务还是第三方服务。
安装和配置
  • 安装:可以通过pip安装DRF:pip install djangorestframework。
  • 配置:在Django项目的settings.py文件中添加rest_framework到INSTALLED_APPS列表中。
结论
Django REST framework是一个功能强大的工具,它极大地简化了Web API的开发过程。通过提供序列化器、视图、路由、认证、权限、限制、分页、版本控制等核心组件,DRF使得开发者能够高效地构建、部署和维护RESTful API。无论是对于初创公司还是大型企业,DRF都是一个值得考虑的选择。

1、安装口令
pip install djangorestframework
2.全局setting文件app列表中插入这个扩展包名称
INSTALLED_APPS = [
    ...
    'rest_framework',
    ...
]
3.创建序列化器
from rest_framework import serializers
from .models import slide

class SlideSerializer(serializers.ModelSerializer):
    class Meta:
        model = slide
        fields = '__all__'  # 使用所有字段,或者你可以指定特定字段
4.创建视图(View)
在你的app目录下创建一个名为views.py的文件,并添加以下内容来定义API视图:
from rest_framework import viewsets
from .models import slide
from .serializers import SlideSerializer

class SlideViewSet(viewsets.ModelViewSet):
    queryset = slide.objects.all()
    serializer_class = SlideSerializer
5.配置URL:
在你的app目录下找到或创建urls.py文件,并配置路由:
from django.urls import path, include
from rest_framework.routers import DefaultRouter
from .views import SlideViewSet

router = DefaultRouter()
router.register(r'slides', SlideViewSet)

urlpatterns = [
    path('', include(router.urls)),
]
6.运行迁移
python manage.py makemigrations
python manage.py migrate
7.启动服务器并测试API:
python manage.py runserver


执行效果大概是这样,除了自动把增删改查得接口写完了,还提供了一个对应得调试页面

1.png
回复

使用道具 举报

您需要登录后才可以回帖   登录 立即注册

高级模式

南通谢凡软件科技有限公司