【python】web应用开发DRF框架

这篇具有很好参考价值的文章主要介绍了【python】web应用开发DRF框架。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

DRF

【python】web应用开发DRF框架

Django rest_framework, 简称 drf, 可以更方便的使用django写出符合 RESTful 规范的接口, (缩减编写api接口的代码)

Django REST framework是一个建立在Django基础之上的Web应用开发框架(Django的一个app),可以快速的开发REST API接口应用
在REST framework中,提供了序列化器Serialzier的定义,可以帮助我们简化序列化与反序列化的过程
不仅如此,还提供丰富的类视图、扩展类、视图集来简化视图的编写工作
REST framework还提供了认证、权限、限流、过滤、分页、接口文档等功能支持
REST framework提供了一个API 的Web可视化界面来方便查看测试接口

  • 1、官方文档 : https://www.django-rest-framework.org/

  • 2、GitHub : https://github.com/encode/django-rest-framework/tree/master

2.安装与快速使用(csrf禁用状态)

  • 安装 drf
pip3 install djangorestframework
  • models.py 文件书写模型类(需要持久化的)
from django.db import models


class Book(models.Model):
    nid = models.AutoField(primary_key=True)
    title = models.CharField(max_length=32)
    price = models.DecimalField(max_digits=8,decimal_places=2)
    author = models.CharField(max_length=16)
    publish = models.CharField(max_length=16)
# 创建好模型类执行数据库迁移命令
  • serializers.py 新建一个序列化类(该文件自己创建),如果如果是继承了ModelSerializer(序列化不等于一定要存数据库)
from rest_framework.serializers import ModelSerializer
from drf_test import models


class BookSerializers(ModelSerializer):
    class Meta:
        model = models.Book  #  指明该序列化器处理的数据字段从模型类Book参考生成
        fields = "__all__"   # 指明该序列化器包含模型类中的哪些字段,’all‘指明包含所有字段

果类继承的是Serializer,也就是继承了基类,那么这个我们要写的类的写法就是和model里面差不多,,格式如下:

序列化的使用

在view里面写逻辑的时候,比如我们将查询出来的数据,要返回给前段,那么就需要序列化查询出来的数据,那么就需要使用序列化器,使用方法如下:

【python】web应用开发DRF框架

如果前端传过来数据,我要进行反序列化咋办,将instace 这个属性变为data属性就行,就是属性不一样,其他的都一样。

具体源码就是:

【python】web应用开发DRF框架

将查询出来的数据返回给前段,有可能查询出多条数据,咋返回了:

 book_data = serializers.BookModelSerializers(book_obj).data  #单条数据序列化 

book_data = serializers.BookModelSerializers(book_query,many=True).data  
#不管是一条还是多条,只要数据是被[]嵌套,都要写many=True
  • views.py 书写视图类
 

参考:DRF框架(四)——序列化器和反序列化器-腾讯云开发者社区-腾讯云

2、DRF框架入门介绍_给你骨质唱疏松的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-502157.html

到了这里,关于【python】web应用开发DRF框架的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Node.js基本概念、特点、用途和常用模块,以及Express框架开发一个web应用

    目录 一、Node.js的基本概念和特点 二、Node.js的用途 三、Node.js的常用模块 四、使用Node.js进行Web开发 1. 安装Node.js 2. PyCharm配置Node.js 3. 使用http库编写一个web服务 4. 使用Express框架构建Web应用程序 5. 调试代码 6. 发布应用程序 参考文章  Node.js系列文章推荐阅读: JavaScript匿名函

    2024年02月07日
    浏览(66)
  • 从小白到大神之路之学习运维第53天--------tomcat-web应用——————供开发的商城框架

    第三阶段基础 时  间:2023年7月5日 参加人:全班人员 内  容: Tomcat应用服务 WEB服务 目录 实验环境:(四台服务器) 安装tomcat服务: Nginx+Tomcat 负载均衡集群部署: 安装nginx服务器: Tomcat连接数据库: 服务器 huyang1 toncat8 192.168.59.137 huyang2 tomcat8 192.168.59.138 huyang3 nginx 192.

    2024年02月12日
    浏览(36)
  • Python Flask框架-开发简单博客-项目布局、应用设置

    作者:Eason_LYC 悲观者预言失败,十言九中。 乐观者创造奇迹,一次即可。 一个人的价值,只在于他所拥有的。所以可以不学无术,但不能一无所有! 技术领域:WEB安全、网络攻防 关注WEB安全、网络攻防。我的专栏文章知识点全面细致,逻辑清晰、结合实战,让你在学习路

    2024年02月02日
    浏览(37)
  • [Java Web]element | 一个由饿了么公司开发的前端框架,让你快速构建现代化、美观的 Web 应用程序。

    ⭐作者介绍:大二本科网络工程专业在读,持续学习Java,努力输出优质文章 ⭐作者主页:@逐梦苍穹 ⭐所属专栏:Java Web ⭐如果觉得文章写的不错,欢迎点个关注一键三连😉有写的不好的地方也欢迎指正,一同进步😁 https://element.eleme.cn/#/zh-CN/component/installation   Element 是

    2024年02月05日
    浏览(72)
  • 一个月学通Python(十八):Django表单的应用(Web开发)

    结合自身经验和内部资料总结的Python教程,每天3章,1个月就能全方位的完成Python的学习并进行实战开发,学完了定能成为大佬!加油吧!卷起来! 全部文章请访问专栏:《Python全栈教程(0基础)》 我们继续来完成上一章节中的项目,实现“用户注册”和“用户登录”的功

    2024年02月16日
    浏览(38)
  • 一个月学通Python(二十二):中间件应用及前后端分离开发入门(Web开发)

    结合自身经验和内部资料总结的Python教程,每天3-5章,最短1个月就能全方位的完成Python的学习并进行实战开发,学完了定能成为大佬!加油吧!卷起来! 全部文章请访问专栏:《Python全栈教程(0基础)》 之前我们已经实现了用户必须登录才能投票的限制,但是一个新的问题

    2024年02月16日
    浏览(34)
  • 云原生应用开发框架系列

    作者:禅与计算机程序设计艺术 随着互联网的飞速发展,互联网软件服务的复杂性也越来越高,服务的可靠性、可用性、伸缩性也面临着更加严峻的考验。为应对这一挑战,云计算技术已经成为构建分布式和弹性化的软件服务的关键手段。而Kubernetes、OpenShift等开源项目帮助

    2024年02月08日
    浏览(33)
  • 《Web应用开发》(头歌)

    第1关 表单元素——文本框 第2关 表单元素——密码框 第3关 表单元素——单选框 第4关 表单元素——多选框 第5关 表单元素——checked属性 第6关 表单元素——disabled 属性 第7关 表单元素——label 标签 第8关 表单元素——下拉列表 第9关 表单元素——文本域 第10关 表单元素—

    2023年04月09日
    浏览(37)
  • 桌面应用开发有哪些主流框架?

    受益于开源技术的发展,以及响应快速开发的实际业务需求,跨平台开发不仅限于移动端跨平台,桌面端虽然在市场应用方面场景不像移动端那么丰富,但也有市场的需求。 相对于个人开发者而言,跨平台框架的使用,主要为了满足以下三个主要能力: 生产力提升 :框架能

    2024年02月05日
    浏览(27)
  • Flutter中的Web应用程序开发:构建现代Web应用程序

    作者:禅与计算机程序设计艺术 作为人工智能专家,程序员和软件架构师,CTO,我今天将为大家分享有关 Flutter 中 Web 应用程序开发的见解。在这篇文章中,我们将深入探讨 Flutter Web 应用程序的开发过程、技术原理以及最佳实践。 引言 随着移动设备的普及,Web 应用程序在全

    2024年02月12日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包