前端的Django Rest框架视图和常规Django视图

时间:2019-02-18 17:09:33

标签: django rest django-rest-framework

我正在开发带有后端的应用程序,该应用程序也将由移动应用程序使用。

因此,我选择使用DRF创建REST API。

现在,我正在决定如何处理前端。我真的不想使用任何JavaScript框架,并希望坚持使用Django。

我看到我可以使用DRF(https://www.django-rest-framework.org/topics/html-and-forms/)呈现HTML模板和表单。

但是,我想坚持使用基于Django函数的常规视图并开发应用程序,并简单地将REST API与DRF公开,以供移动开发人员使用。

这将是一种好的编程习惯吗?如果不是这样的话,这种方法有什么弊端。

2 个答案:

答案 0 :(得分:0)

首先,您应该问自己自己为什么要使用React之类的东西,因为尽管它很流行,但它仍是有原因的。重用组件,双向绑定等。如果您要执行的操作不大,则不是这是个坏主意,特别是如果您的DRF很好。

具有反应的事情是,有很多人在使用它,如果遇到问题,您可能会在Internet上找到更多帮助,尽管请记住,开始时很难。

考虑一下应用程序的需求,并记住每个框架都是有效的,各有利弊

答案 1 :(得分:0)

我认为在某些情况下只能提供有效答案,或者对此类问题有主观答案。我认为说如果您要在Django中呈现所有HTML,并且没有Javascript框架,那么实际上也就没有前端。当然,客户端仍然可以使用其浏览器呈现HTML,但是您不必编写或调试HTML。

  

这会是一种好的编程习惯吗?

当然-它肯定已经过时了,但是它已经完成了许多任务。如果您的用例需要较少的客户端数量和处理负载,并且导航开关/页面重新加载/数据更新很少,那么后端所有设计在某些情况下会感觉非常快-浏览器不必做任何工作或加载任何js库。也许您主要是很少显示更新的数据,或者以大格式收集大量数据。我们将这种策略用于我的工作中的许多服务,因为我们无论如何都拥有所有计算机,并且只有不到几百名员工可以支持-我们最好还花更多的力气来工作服务器,而花更少的钱买笔记本电脑(因为用户往往会不小心将咖啡倒在速度较慢的计算机上,并要求购买新的速度更快的计算机。

但是,如果这是用于一般的Web使用,则您可能会发现许多用户将期望能够在不重新加载的情况下输入/检索数据,并且重新加载的体验会比POST数据和抛出预加载的微调器要慢,从而分散了用户的注意力。用户。更多用户承受服务器压力的能力可能会成为问题。

您还只有一个支持的代码库(无论如何都支持API和Web),并且可以切换的语言和框架更少。

  

如果不是,这种方法有什么弊端。

  1. 在每次导航/加载之间重新加载
  2. 服务器上的处理负载-用户很多,否则繁重的计算会变得昂贵
  3. 页面失去了标准的Web用户所期望的“互动”感觉
  4. 承诺提供支持您的移动应用程序的API,并且您的Web前端变得耦合(某些支持monorepo的爱好者可能认为这是积极的)。有人可能会警告不要耦合前端和后端代码,但是我认为Django使您可以保持整洁,只要您注意不要在视图中写任何愚蠢的东西即可。
  5. 无论如何,您都在为移动应用程序创建API,并且可以通过它路由所有数据访问,以减少重复,不一致,错误等。
  6. 您可能希望制作更好的组件,或使用现有的组件库,而如果没有js前端,这将是一件痛苦的事
  7. 将来,如果不通过API进行抽象(可以更轻松地对其进行版本控制),则更改模型和视图耦合可能会遇到更多问题。
  8. 取决于数据,更新,布局等,您可能失去有效缓存的能力。

希望这会给您一些思考的机会-就像我说的那样,我认为这里没有正确的答案-这取决于您的用例,而我无疑会错过其他人可能提出的一些观点。老实说,我个人更倾向于使用js前端。

祝您的项目好运:)