为了创建具有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都使用相同的编程语言.

python – Django和Node – 它是如何工作的?的更多相关文章

  1. 利用Node实现HTML5离线存储的方法

    这篇文章主要介绍了利用Node实现HTML5离线存储的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  2. ios – 如何使用Objective C类中的多个参数调用Swift函数?

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  3. ios – Swift 4添加手势:覆盖vs @objc

    我想在我的视图中添加一个手势,如下所示:但是,在Swift4中,我的编译器给出了以下错误:建议添加@objc以将此实例方法公开给Objective-C.实现此目的的另一个选项将覆盖touchesBegan()函数并使用它来处理点击.我试图以“Swift”的方式做到这一点,而不必带入Obj-C.有没有纯粹的Swift方式来添加这个轻击手势而不使用@objc?

  4. ios – 将视频分享到Facebook

    我正在编写一个简单的测试应用程序,用于将视频从iOS上传到Facebook.由于FacebookSDK的所有文档都在Objective-C中,因此我发现很难在线找到有关如何使用Swift执行此操作的示例/教程.到目前为止我有这个在我的UI上放置一个共享按钮,但它看起来已禁用,从我读到的这是因为没有内容设置,但我看不出这是怎么可能的.我的getVideoURL()函数返回一个NSURL,它肯定包含视

  5. ios – 以编程方式在Swift中添加联系人

    我想在Swift中以编程方式添加联系人.我发现了一些Objective-C示例,但我没有让它们工作,甚至在Objective-C中也没有.我不希望这涉及到AddressBookUI,因为我想从我自己的UI中获取值.解决方法这是在Swift中添加联系人的快速方法.我在我的iPhone5iOS7.1上验证了它,因为我发现模拟器并不总是与我的手机对AB的东西相同.您可以添加一个按钮并指向此方法:顺便说一下–它假设你已经分配了一个地址簿var,你可以通过覆盖viewDidAppear来打开视图.它也会执行安全提示

  6. ios – 使用带有NodeJs HTTPS的certificates.cer

    我为IOS推送通知生成了一个.cer文件,我希望将它与NodeJSHTTPS模块一起使用.我发现HTTPS模块的唯一例子是使用.pem和.sfx文件,而不是.cer:有解决方案吗解决方法.cer文件可以使用两种不同的格式进行编码:PEM和DER.如果您的文件使用PEM格式编码,您可以像使用任何其他.pem文件一样使用它(有关详细信息,请参见Node.jsdocumentation):如果您的文件使

  7. xcode – 如何在LLDB断点条件下使用堆栈内容?

    问题:我有一种情况,我们在发布期间有媒体播放,并且objc_exception_throw()在此期间大约有5次点击,但总是被捕获,并且它在媒体播放器对象的南边.我厌倦了(a)必须手动连续n次,或者(b)在播放完成之前必须禁用断点.我尝试过的:>使断点忽略前五次命中(问题:它并不总是正好五次)>使用我的目标作为模块创建我自己的符号断点(问题:没有改变)我想做什么:想到的一个解决方案是在断点命中时评

  8. ios – 为目标c中的方法传递未知类型的参数,可能吗?

    是否可以将未知类型的参数传递给objective-C方法?在C#中你可以写实现这一点,但我知道Objective-C没有泛型,所以有没有其他方法可以在Objective-C中实现这一点?我需要这个,因为我想创建一个方法来改变不同对象的文本颜色,如UITextField和UIButton的占位符文本.所以我的计划是创建一个名为textWhite的方法,然后在此方法中检查对象的类型,然后运行匹配的代码以使文本颜色变为白色.解决方法是的,可以传递未知类型的参数.见下面的例子.请参考使用id对象的链接作为参数Us

  9. ios – Swift指针算术和解除引用;将一些类似C的地图代码转换为Swift

    我有一点似乎没有工作的Swift代码……解决方法您正在指定locationPointer指向新位置,但仍在下一行中使用ptr,并且ptr的值尚未更改.将您的最后一行更改为:或者你可以改变指向var的指针并推进它:

  10. ios – 如何在Xcode堆栈跟踪中查找NSInternalInconsistencyException的来源

    我没有在此堆栈跟踪中的任何位置看到任何可识别的文件名,方法调用或行号.或者,如果不是简单地读取堆栈跟踪并且涉及其他技术,那么开发人员应该采取哪些适当的下一步来追踪此类错误的来源?

随机推荐

  1. 10 个Python中Pip的使用技巧分享

    众所周知,pip 可以安装、更新、卸载 Python 的第三方库,非常方便。本文小编为大家总结了Python中Pip的使用技巧,需要的可以参考一下

  2. python数学建模之三大模型与十大常用算法详情

    这篇文章主要介绍了python数学建模之三大模型与十大常用算法详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感想取得小伙伴可以参考一下

  3. Python爬取奶茶店数据分析哪家最好喝以及性价比

    这篇文章主要介绍了用Python告诉你奶茶哪家最好喝性价比最高,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧

  4. 使用pyinstaller打包.exe文件的详细教程

    PyInstaller是一个跨平台的Python应用打包工具,能够把 Python 脚本及其所在的 Python 解释器打包成可执行文件,下面这篇文章主要给大家介绍了关于使用pyinstaller打包.exe文件的相关资料,需要的朋友可以参考下

  5. 基于Python实现射击小游戏的制作

    这篇文章主要介绍了如何利用Python制作一个自己专属的第一人称射击小游戏,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起动手试一试

  6. Python list append方法之给列表追加元素

    这篇文章主要介绍了Python list append方法如何给列表追加元素,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  7. Pytest+Request+Allure+Jenkins实现接口自动化

    这篇文章介绍了Pytest+Request+Allure+Jenkins实现接口自动化的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  8. 利用python实现简单的情感分析实例教程

    商品评论挖掘、电影推荐、股市预测……情感分析大有用武之地,下面这篇文章主要给大家介绍了关于利用python实现简单的情感分析的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

  9. 利用Python上传日志并监控告警的方法详解

    这篇文章将详细为大家介绍如何通过阿里云日志服务搭建一套通过Python上传日志、配置日志告警的监控服务,感兴趣的小伙伴可以了解一下

  10. Pycharm中运行程序在Python console中执行,不是直接Run问题

    这篇文章主要介绍了Pycharm中运行程序在Python console中执行,不是直接Run问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

返回
顶部