zoukankan      html  css  js  c++  java
  • DRF框架之序列化器初体验

    首先,我们需要明白序列化和反序列化的过程指的是什么。

    序列化操作:将模型数据 ---> 字典数据 --->JSON数据(响应JSON数据的操作)

    反序列化操作:将JSON数据 ---> 字典数据 ---> 校验通过的字典数据 --->模型数据(添加、修改数据的操作)

    接下来,我们将学习DRF框架,通过DRF框架来提高我们开发API的效率。

    什么是DRF框架?

    Django REST framework 框架是一个用于构建Web API 的强大而又灵活的工具。

    通常简称为DRF框架 或 REST framework。

    DRF框架是建立在Django框架基础之上,由Tom Christie大牛二次开发的开源项目。

    DRF框架的特点是什么?

    • 提供了定义序列化器Serializer的方法,可以快速根据 Django ORM 或者其它库自动序列化/反序列化;
    • 提供了丰富的类视图、Mixin扩展类,简化视图的编写;
    • 丰富的定制层级:函数视图、类视图、视图集合到自动生成 API,满足各种需要;
    • 多种身份认证和权限认证方式的支持;
    • 内置了限流系统;
    • 直观的 API web 界面;
    • 可扩展性,插件丰富

    为什么要学习DRF框架?

     通过昨天开发的REST API程序,我们也了解到了使用原生的Django框架想要完成序列化和反序列化的代码编写有多么麻烦。

     然而,DRF框架为我们将序列化和反序列化的操作进行了高度的封装,我们不再需要关心API是如何序列化和反序列化数据的,我们只需要调用相应的方法即可完成数据之间的序列化操作和反序列化的操作。

    DRF框架的安装与配置

    1. 安装DRF框架模块

    pip install djangorestframework

    2. 配置DRF框架

    INSTALLED_APPS = [
        ...
        'rest_framework', # DRF子应用
    ]

    当我们安装完成DRF框架模块后,想要在Django程序中使用DRF框架,需要在配置文件中进行注册子应用。

    当我们,完成以上两步操作后,就可以开始使用DRF框架开发API了。

    DRF框架开发之初体验程序:

    1. 我们要在,使用序列化操作的子应用中创建一个名字为serializers.py的文件,用于保存该应用的序列化器。

    class BookInfoSerializer(serializers.ModelSerializer):
        '''图书数据序列化器'''
        class Meta:
            # 设置需要序列化的模型类
            model = BookInfo
    
            # 设置需要序列化的模型字段
            fields = '__all__'  # __all__:所有字段

    2. 我们要,定义一个视图即接口(API)。

    from rest_framework.viewsets import ModelViewSet
    
    from booktest.models import BookInfo
    from booktest.serializers import BookInfoSerializer
    
    
    class BookInfoViewSet(ModelViewSet):
        '''使用序列化器的图书信息视图'''
        # 设置查询集
        queryset = BookInfo.objects.all()
        # 设置序列化器
        serializer_class = BookInfoSerializer

    3. 我们要,定义路由信息。

    from django.conf.urls import url
    from rest_framework.routers import DefaultRouter
    
    from booktest import views
    
    
    urlpatterns = [
    
    ]
    
    # 定义一个序列化器的路由器
    router = DefaultRouter()
    
    # 将序列化器的视图进行注册
    router.register(r'books', views.BookInfoViewSet)
    
    # 将注册后的序列化器添加到路由中
    urlpatterns += router.urls

    通过,这次体验,是不是发现DRF框架的方便之处了呢?

    接下来,我们就要进行系统的学习DRF框架了。

    该花的钱要花,该吃的饭要吃。
  • 相关阅读:
    数组_leetcode283
    数组_leetcode438
    数组_leetcode215
    数组_leetcode167
    数组_leetcode209
    数组_leetcode88
    数组_leetcode80
    数组_leetcode76
    数组_leetcode75
    数组_leetcode27
  • 原文地址:https://www.cnblogs.com/chao666/p/12268058.html
Copyright © 2011-2022 走看看