django REST framework-使用与不使用的区别?

这篇具有很好参考价值的文章主要介绍了django REST framework-使用与不使用的区别?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

首先,来回顾一下传统的基于模板引擎的 django 开发工作流:

绑定 URL 和视图函数。当用户访问某个 URL 时,调用绑定的视图函数进行处理。
编写视图函数的逻辑。视图中通常涉及数据库的操作。
在视图中渲染 HTML 模板,返回 HTTP 响应。

其次,基于 django-rest-framework 的 RESTful API 的开发,过程是完全类似的:

绑定 URL 和视图函数。当用户访问某个 URL 时,调用绑定的视图函数进行处理。
编写视图函数的逻辑,根据 HTTP 请求类型,对请求的资源进行相应操作,这个过程通常涉及数据库的操作。
使用约定的资源描述格式(例如 XML 或者 JSON)序列化资源并将数据返回给客户端(通过 HTTP 响应)。
对比发现,前两步几乎是完全相同的。不同点在于,在传统的基于模板引擎的开发方式中,资源使用 HTML 文档进行描述并返回给客户端,而在 RESTful API 的开发方式中,资源通常被描述为 JSON 或者 XML 的格式返回给客户端。

有的同学就要问了,虽然 django 的视图函数通常情况下返回 HTML 文档的响应,但是 django 也支持返回 XML 格式或者 JSON 格式的响应,那么为什么还要使用 django-rest-framework 呢?

事实上,的确能够在 django 中返回 JSON 或者 XML 格式的数据,但是 django 框架本身只提供了十分基础的功能。django-rest-framework 是基于 django 的拓展,专为 RESTful API 的开发而设计,提供了十分丰富的辅助类和函数,帮助我们方便地开发 API。下面就来简单介绍 django-rest-framework 为我们提供了哪些功能特性,这些功能和特性我们在接下来的实战中会进一步学习其用法,这里可以先从宏观层面,做一个简单的了解。

  1. 内容协商(Content Negotiation)。之前说过,在 RESFful 架构的系统中,资源以某种描述形式在客户端和服务器之间传递,django-rest-framework 根据客户端能够接受的资源格式,自动使用合适的资源描述工具,返回客户端可接受的资源。
  2. 认证与鉴权(Authentication and Permission)。客户端对资源的操作通常是受限的,有些资源只能由经过身份认证或具有相应权限的用户才能操作,django-rest-framework 提供了丰富的认证类和鉴权类,帮助我们对用户的身份和权限进行校验。
  3. 序列化(Serialization)。django 基于 Python 语言开发,因此资源通常由 Python 对象描述,那么在传递给客户端时,就要进行转换,例如将 Python 对象转换为 JSON 字符串,这个过程就叫做序列化。django 内置的序列化器功能有限,django-rest-framework 提供了功能更加丰富和强大的序列化器,让资源的序列化工作变得异常简单。
  4. 各种通用视图(Generic Views)。django 针对 Web 开发中常见的处理逻辑,提供了各种通用视图函数,以提高代码的复用性,减少开发者的工作量。django-rest-framework 同样针对 RESTful API 开发中常见的处理逻辑,提供了各种通用视图函数。
  5. 路由自动生成器(Router)。django-rest-framework 根据编写的视图函数,自动生成符合 RESTful 设计的 URL 路由。
  6. 文档(Documentation)。django-rest-framework 基于 OpenAPI 模式自动生成 API 文档,无需我们手动编写和维护。

除此以外,django-rest-framework 还提供了分页(Pagination)、API 版本控制(Versioning)、缓存(Caching)、限流(Throtting)等各种功能类。文章来源地址https://www.toymoban.com/news/detail-723421.html

到了这里,关于django REST framework-使用与不使用的区别?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 使用Django Rest Framework设计与实现用户注册API

    在现代Web应用开发中,RESTful API已成为前后端分离架构中的关键组件。Django Rest Framework (DRF) 是一款基于Django的优秀库,提供了丰富的工具和接口,极大地简化了RESTful API的设计与实现。本文将以用户注册功能为例,展示如何运用DRF构建一个完整的API端点,包括数据验证、模型

    2024年04月25日
    浏览(27)
  • Django REST Framework完整教程-认证与权限-JWT的使用

    阅读本文之前,请读者先阅读: https://plugin.blog.csdn.net/article/details/133853377,如果已经知晓Django REST Framework的基础,可以继续阅读本文内容。 认证(Authentication)与权限(Permission)不是一回事。认证是通过用户提供的用户ID/密码组合或者Token来验证用户的身份。权限(Permission)的校验

    2024年02月07日
    浏览(32)
  • Django进阶:DRF(Django REST framework)

    DRF 即 Django REST framework 的缩写,官网上说: Django REST framework 是一个强大而灵活的工具包,用于 构建Web API 。 简单来说:通过DRF创建API后,就可以通过HTTP请求来获取、创建、更新或删除数据(CRUD)。 那么为什么要构建API呢? 在Django中,我们通过 model-view-template 实现了 后端和前

    2024年02月11日
    浏览(28)
  • 深入探索 Django Rest Framework

    这篇文章会详细介绍Django REST Framework的核心组成部分,包括Serializers、ViewSets、Routers、权限和认证系统以及测试和调试工具。文章从基础开始,逐步深入,旨在帮助读者掌握使用Django REST Framework构建复杂API的技能。 Django REST框架,通常简称为DRF,是一个强大而灵活的Web API工具

    2024年02月15日
    浏览(29)
  • Django Rest_Framework(一)

    在开发Web应用中,有两种应用模式: 前后端不分离[客户端看到的内容和所有界面效果都是由服务端提供出来的。] 前后端分离【把前端的界面效果(html,css,js分离到另一个服务端或另一个目录下,python服务端只需要返回数据即可)】 前端形成一个独立的网站/独立的地址,服

    2024年02月14日
    浏览(31)
  • Django Rest_Framework(三)

    为了方便接下来的学习,我们创建一个新的子应用 opt 注册子应用 总路由,代码: 子路由,代码: 因为接下来的认证组件中需要使用到登陆功能,所以我们使用django内置admin站点并创建一个管理员. admin运营站点的访问地址:http://127.0.0.1:8000/admin 创建管理员以后,访问admin站

    2024年02月14日
    浏览(41)
  • Django Rest_Framework(二)

    什么时候声明的序列化器需要继承序列化器基类Serializer,什么时候继承模型序列化器类ModelSerializer? 看数据是否从mysql数据库中获取,如果是则使用ModelSerializer,不是则使用Serializer drf除了在数据序列化部分简写代码以外,还在视图中提供了简写操作。所以在django原有的dja

    2024年02月14日
    浏览(27)
  • django rest framework 学习笔记2

    注意:该文章部分摘抄之百度,仅当做学习笔记供小白使用,若侵权请联系删除! 显示关联表的数据,本示例会显示所有的关联的数据信息 读取到的结果器数据关联的为数字,此时需要进行一些操作可以读到正确数据 方法1: source=\\\'字段名.关联属性值\\\' 方法2 : 返回其属性值

    2024年02月20日
    浏览(29)
  • Django rest framework基本知识

    使用pycharm生成Django项目后,会生成工程目录和app目录 工程目录下5个文件,settings.py是全局配置相关的  urls.py是路有相关的 app相关的目录    models.py 数据库ORM对应的模型类  serializers.py 序列化与反序列化处理    views.py 根据request进行业务逻辑处理,返回response    admin.p

    2024年02月09日
    浏览(32)
  • 【django2.0之Rest_Framework框架一】rest_framework序列器介绍

    Django RestFramework(简称DRF) 提供了序列化器Serialzier的定义,可以帮助我们简化序列化与反序列化的过程,不仅如此,还提供丰富的类视图、扩展类、视图集来简化视图的编写工作。REST framework还提供了认证、权限、限流、过滤、分页、接口文档等功能支持。 github地址: https://

    2024年02月07日
    浏览(35)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包