加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – Django和Node – 它是如何工作的?

发布时间:2020-12-16 23:27:45 所属栏目:Python 来源:网络整理
导读:为了创建具有RESTful功能的Web应用程序,我已阅读并观看了大量文章和视频,但我仍然无法全面了解其工作原理.我应该选择哪个.其他每一个答案都没有帮助“它取决于”.我把它归结为Django和Node之间的第一选择.但是我无处可找到这些部件如何协同工作以及需要哪些
为了创建具有RESTful功能的Web应用程序,我已阅读并观看了大量文章和视频,但我仍然无法全面了解其工作原理.我应该选择哪个.其他每一个答案都没有帮助“它取决于”.我把它归结为Django和Node之间的第一选择.但是我无处可找到这些部件如何协同工作以及需要哪些模块的整个“图片”.因此,我试图将所有内容都放在一个粗略的插图中.请注意,我是一个完整的新手.

我用会计模块开发了一个ERP应用程序.基本上它主要是关于CRUD,除了查看图表,打印和存储文档.所以这就是“它取决于”

我唯一能够做出决定的是使用nginx,Postgresql和Debian 8作为工具/操作系统.这些是固定的星星.

我的问题不是常见的Django vs Node.js,它不仅仅是我想要的意见:

>下面的图片是否正确?任何意见?
>是否还需要其他组件?开始?

解决方法

你有很多问题 – 在StackOverflow上应该有一个问题可以回答,而不会引起很多争论或有意见而不是事实.

因此,我认为你的问题可能会因为“过于宽泛”而被封闭;但我认为值得回答.

我不会说“它取决于”,虽然这真的是归结为 – 但这是我试图解释它.

nodejs是一个运行时.这是一个允许您使用javascript在服务器上开发代码的环境.为了对nodejs做任何有用的事情,超越“hello world”;你需要使用一个框架,社区已经开发了大量的框架和各种堆栈,以便将所有组件连接在一起.这种堆栈的一个例子是MEAN,它是用于数据库的MongoDB,用于框架的Express,用于协助前端的Angular,以及用于运行它的所有节点.

django是一个框架 – 它不是运行时.这意味着它是从节点世界中删除的一步. django的运行时是Python. django也不是像MEAN那样的“堆栈”,你可以在它上面开发自己的堆栈 – 但由于django是一个“电池包含”框架,你只需要添加一个数据库 – 它包含你需要的一切.

REST只是设计Web服务的一种方式.它不是语言,平台或图书馆.它是一组规则,用于描述设计API的方法,以便它们利用HTTP的语义动词.

您可以使用任何库和编程语言来开发RESTful服务.你真正需要的只是两件事[a]一个通过HTTP进行通信的库[b]一种序列化数据的方法,最好用JSON(但即使这不是一个要求).

nginx只是一个非常快速的网络服务器和反向代理.经常提到它的原因是因为框架服务静态媒体非常昂贵.对框架的所有请求(在django世界或nodejs世界中)都必须经过一大串组件,这些组件有助于解码HTTP请求并创建一个易于开发人员使用的数据结构.这个组件链通常称为中间件.由于每个请求都必须通过此中间件,因此最好是出于性能原因,请求不需要执行应用程序的“强大”(如图像请求,样式表,视频文件)由其他东西处理.这就是nginx的用途,因为它是一个非常快速的网络服务器.

现在已经解释了这些,您需要查看哪种堆栈最适合您的应用程序.要做到这一点,您需要了解每个堆栈试图解决的哲学/理由或问题.

对于django – 这很容易. Django是由一个在多家报纸上工作的团队创建的,旨在帮助他们管理在不同网站上发布的内容.因此,它的设计使得内容管理成为首要关注的问题.这就是为什么它有一个非常强大的管理控制台作为标准组件;以及内置非常强大的ORM和自己的模板引擎. Django让您了解如何最好地实际运行和部署它;虽然它们确实提供了很多建议和示例 – 但最终,您需要决定使用哪个数据库,使用哪个Web服务器以及如何部署应用程序.

在nodejs世界中 – 主要关注的是非阻塞I / O和响应速度. Nodejs能够在有限的资源上提供大量的同时请求.因此,它为您提供了一个非常强大的基础来开发需要快速响应请求的应用程序……就是这样.在节点或任何其他专门的低级库中编程时,您需要确保您的代码充分利用了库.因此,如果您开始在节点中编写阻止代码,您将发现您所期望的性能尚未实现.

nodejs并不关心应用程序实际执行的操作.可以把它想象成一个非常快速,非常强大的工具.您可以使用它构建任何内容,但是您需要知道该工具的最佳设计是什么,以便知道何时使用它.

nodejs让你在较低级别工作 – 这就是为什么有很多软件包可以帮助你用节点做各种事情;以及多种方式可以获取组件并创建自己的堆栈 – 具体取决于您在节点之上构建的内容.把它想象成乐高积木.

nodejs和django不是互斥的.您可以在应用程序中利用它们并利用它们的优势并充分利用每个方面的优势.

至于你的具体问题:

Did I get the picture? Any comments?

我不知道.你是否?

Is there any further components that will be needed? To get started?

答案是肯定的,因为你不想从头开始构建所有东西.每个堆栈都有自己的库组件来开发服务.对于django,有django休息框架(DRF).

Which framework are best for CRUD?
Which framework are best for RESTful? Any other module needed?
Best report generator for printing?
Best diagram tools?

对于任何事情都没有什么是“最好的”.这个问题只是在征求意见.它就像问,什么是最好的果汁?

Which framework are fastest and most reliable for CRUD using Postgresql

人们已经在postgresql之上开发了许多强大的应用程序;但是由于nodejs绑定到javascript – 在这个领域仍然有很多工作要做.

Can I lock the library (trade secrets) in both environments?

是.

Is there better tools for creating ERP/Accounting?

ERP和会计是两个截然不同的事情.有很多用Python编写的会计软件包/应用程序.用Python编写的ERP系统很少.

你不能将两者结合起来并将它们混合在一起.

What is the benefits using Angular on top of Node.js?

在_____之上使用Angular的相同好处(插入您最喜欢的后端). Angular只是一个前端库.

一个轶事的好处是Angular和Node都使用相同的编程语言.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读