Django Rest 框架和前端
Posted
技术标签:
【中文标题】Django Rest 框架和前端【英文标题】:Django Rest Framework and the Frontend 【发布时间】:2021-09-11 08:15:36 【问题描述】:我想将 Django Rest Framework 用作 API,并且正在寻找一种将前端/html/CSS/JS 与其“耦合”的方法。 客观地说,我习惯了 Django“通常”的方式,通过命名 HTML 模板并在转到特定 URL 时“呈现”它们。
现在,有了 DRF,这个功能似乎已经消失了,而且在我看来,它只是“react.js 或 vue.js”作为使用 API 的答案。
前端有哪些选择?我能不能像以前那样简单地在“通常”的 Django 框架内完成所有工作。为什么没有资源谈论这个?
谢谢,如果您需要更多信息,请告诉我。
【问题讨论】:
如果您正在创建一个 API,那么您通常需要一些东西来使用该 API,这通常是 Vue 之类的 javascript 客户端。如果不是出于此目的,那么您使用 DRF 的目的是什么?当然,您仍然可以混合和匹配所有方法:使用服务器端渲染的 Django 模板,使用与 API 通信的 Vue 应用程序,将这些 Vue 文件作为来自 Django 的静态文件提供,或者从完全不同的服务器提供 Vue 文件。 看看这里:django-rest-framework.org/topics/html-and-forms 【参考方案1】:DRF 只是 Django 的附加层,有助于实现 API。您可以使用 Django 在服务器端渲染 html 并将其提供给浏览器。您不需要为此使用 DRF。但是,如果您假设您的前端应用程序将是交互式的、动态的和复杂的,那么这并不是解决问题的最佳方法。
更流行的方法建议将其分离在前端应用程序(react 或 vue)和后端与 REST API 进行交互。它允许在前端应用程序上移动与 UI 相关的所有内容,并且只在服务器上保持状态。
顺便说一句,Django 是为在服务器上生成 html 而开发的,用于像 https://www.washingtontimes.com/news/ 这样的网站,但世界正在发生变化。资源只谈热门话题
【讨论】:
以上是关于Django Rest 框架和前端的主要内容,如果未能解决你的问题,请参考以下文章
Angular 2 前端 django 2 REST 框架后端用户身份验证
如何从 django rest 框架访问 jwt 令牌到 Angular 前端
Django + AngularJS:没有使用普通 URL 和视图的 Django REST 框架的类 REST 端点?