IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 第十三章:DRF的使用 -> 正文阅读

[Python知识库]第十三章:DRF的使用

?系列文章目录

第一章?:Django安装与配置虚拟环境

第二章:django各模块的作用以及参数说明

第三章:? Django的路由与视图

第四章:django请求

第五章:django会话

第六章:django中的cookie与session

第七章:视图类

第八章:模型类

第九章:django与mysql连接与迁移

第十章:django模型类(二)

第十一章:django之后台管理

第十二章:Restful风格介绍

目录

?系列文章目录

文章目录

前言

一、DRF介绍

1.是什么

2.能做什么

3.工作流程

二、使用步骤

1.安装

2.配置djangorestframework

3.关联模型类

4.定义视图

5.配置路由

三.使用DRFweb页面进行测试

总结


前言

上一章讲过使用Restful风格开发一套接口,但是这个接口只能使用postman调试工具进行测试,并且在实现模型类转换为json数据格式的时候比较复杂,Django REST framework(DRF)框架来帮你解决


一、DRF介绍

1.是什么

  1. 一个依赖于django的工具包,可以更方便的帮助我们构建Restful接口

2.能做什么

  1. 提供了可视化的API调试界面,开发者可以在线测试接口
  2. 提供了各种开箱即用的API认证授权工具,如OAuth2
  3. 提供了orm数据序列化和非orm数据的序列化支持
  4. 支持函数视图
  5. 大量的文档和社区支持

3.工作流程

相比正常django,drf主要多了一个序列化与反序列化步骤,该步骤可以帮我们把模型类查询集更方便的转换为json数据(序列化),或者把json数据转换为模型类对象(反序列化)

二、使用步骤

1.安装

pip install djangorestframework

2.配置djangorestframework

  • 在set中的INSTALLED_APPS应用中添加'rest_framework',进行子应用注册
  • 在你自己的应用下创建serializers.py文件

3.关联模型类

在serializers.py文件中编辑

from rest_framework import serializers
from .models import BookInfo


class BookInfoSerializer(serializers.ModelSerializer):
    """
    图书数据序列化器
    """

    class Meta:
        model = BookInfo  # 指定改序列化器处理的数据字段从模型类BookInfo 生成
        fields = '__all__'  # 指明改序列化器中包含模型类中哪些字段  all  指明包含所有的字段
  • 定义关联模型类BookInfo的序列化器BookInfoSerializer,序列化器需要继承serializers.ModelSerializer
  • 在序列化器中定义一个Meta内部类,类变量model表示关联的模型类,fields指明序列化该模型类中的那些字段,使用__all__表示全部

4.定义视图

在views文件中添加视图方法

from rest_framework.viewsets import ModelViewSet
class BookInfoView(ModelViewSet):
    """
    定义类视图
    """
    queryset = BookInfo.objects.all()      # 指定给视图集在查询数据的 时候使用的查询集
    serializer_class = BookInfoSerializer

5.配置路由

在urls文件中添加

router = DefaultRouter()   # 使用处理视图的路由器
router.register('book',views.BookInfoView)   # 像这个路由器里面注册视图集
# 把这个book路由添加到
urlpatterns += router.urls  # 将路由器中的路由信息追加到Django的路由列表中

三.使用DRFweb页面进行测试

运行django,访问根路由,会进入到Api Root页面,此时你如果定义的有别的路由为跟路由会被覆盖

?

进入book路由返回定义的bookinfo模型类的所有结果

最下面点击post可以对书籍进行添加?

?进入/book/2/路由 获取id为2的书籍的信息,点击右上角的delete可以对该对象进行删除,点击最下面的put可以对模型类进行修改?


总结

DRF使用起来挺简单的,序列化与反序列化屏蔽了对模型类的操作,并且提供了一个接口测试的web界面,本章讲的还只是DRF的一部分,想要深入了解可可以去drf官方网站第十二章:Restful风格介绍

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-05-15 11:33:56  更:2022-05-15 11:34:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/21 23:03:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码