【问题标题】:Django Rest Framework using Viewsets with different renderersDjango Rest Framework 使用具有不同渲染器的视图集
【发布时间】:2020-05-03 08:26:18
【问题描述】:

是否也可以使用 Django Rest Framework 来使用 Bootstrap 渲染我的 HTML 代码等等...?如果不是,那么拆分 API 端点和 HTML 视图的最佳解决方案是什么? 我公开了一个带有 DRF 视图集和 JSON 序列化程序的 API。它工作得很好。此外,我想添加这个 API 的 HTML 渲染版本并为其设计一个 HTML 表单。 API 和 HTML 渲染版本都应该在同一台机器上运行。

提前致谢

【问题讨论】:

  • 渴望得到答案 - 我自己也尝试过同样的事情,但在尝试让 DRF 将数据交替传送到 JSON 输出和(在适当的情况下)HTML 模板时遇到了奇怪的错误。

标签: django rest api django-rest-framework django-drf-renderer


【解决方案1】:

你可以。没有什么能阻止你,这就是 DRF 自己的可浏览渲染器的工作原理。是否有意义取决于您的用例。如果您的 API 是您的应用程序生成的主要内容,并且 HTML 只是为了支持它、提供使用示例等,那么这可能是有用且有意义的,因为它将始终与您的 API 保持同步。

但是,如果您的 API 的目的是为您的网站提供数据(以及可能改变该数据的方法),则更典型的做法是仅以 JSON 格式呈现您的 API,然后让您的应用使用它,要么通过 Django 渲染模板,使用 javascript 来获取它需要的内容,要么使用前端框架,如 Vue 或 React。

【讨论】:

  • 我的用例如下: - 带有外围设备(外围设备:继电器、传感器)的轻量级嵌入式 Linux 系统(500MHz 128MB RAM)。传感器数据不断收集并存储在 sqlite3 中 - 我想要一个带有 --login/logout 的基本本地网站,具有不同权限的用户角色(至少 2 个),仅为管理员创建/删除新用户,员工用户 --IP地址、DHCP 配置(以太网、Wifi)、--sensor 数据图表,例如chartJS,(每天,每周)--CRON 设置以在触发继电器时添加时间表-为移动应用程序、桌面应用程序公开具有类似功能的 REST API,
  • 为此,我个人会选择后两个选项之一。在像这样的低功率设备上使用前端框架可能是有意义的,因为浏览器最终会做很多工作,而不是它所在的系统,而且大多数计算机/手机都会比这更强大。
  • 我找到了一篇关于 DRF + React 的不错的博客。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-07
  • 1970-01-01
  • 2017-08-05
  • 1970-01-01
  • 1970-01-01
  • 2013-06-24
  • 2016-04-14
相关资源
最近更新 更多