Node.js(GitHub上的55,432★)和Django(GitHub上的37,614★ )是构建Web应用程序的两个强大工具。

Node.js有一个“JavaScript无处不在”的动机,以确保在Web应用程序的服务器端和客户端使用JavaScript,Django有一个“完美主义者框架,有最后期限”的动机,以帮助开发人员快速构建应用程序。

它们正在许多大型项目中实施,它们拥有庞大的用户社区,并且正在定期升级。这两种工具的质量使开发人员对于为他们的项目选择哪种工具感到困惑。本文旨在清除空气并帮助您做出决定。

Node.js

JavaScript的主要优势在于它在客户端开发方面的优势,但Node.js正在通过在服务器端创建奇迹来完全相反。

Node是一个开源JavaScript运行时环境,用C,C ++和JavaScript编写,构建于Google V8 JavaScript引擎上,并于2009年发布.Node.js基于事件驱动的非阻塞I / O模型。

可以使用Windows Installer在Windows上安装节点。安装很简单,只需按照从官方网站下载安装程序后的提示即可完成。

可以从Windows命令提示符或PowerShell确认成功安装:

node-v

对于Linux(Ubuntu)用户,可以从终端安装Node.js:

sudo apt-get updatsudo apt-get install nodejssudo apt-get install npm

可以在终端上通过以下方式确认在Linux(Ubuntu)上的成功安装:

nodejs-v

Node Package Manager(npm)用于安装与Node.js一起使用的包。

优点

伟大图书馆的可用性。

高性能。

非常适合构建API。

它有一个很棒的包管理器。

庞大的用户社区。

轻松处理并发请求。

缺点

异步编程可能难以使用。

由于其单线程,CPU密集型应用程序不是很好。

回调导致大量嵌套回调。

Django

Django是一个非常强大的开源Python Web框架。它是非常高级的,因为大多数低级别的东西都被抽象出来了。众所周知,它具有“包含电池”的理念,因此它可以开箱即用。

Django可以实现快速开发项目,对于已经了解Python的人来说,它是初学友好的。

Django是以实用和干净的设计为基础构建的,并且具有构建复杂Web应用程序所需的所有主要组件。

安装非常简单,可以使用Python的包管理工具(称为pip)完成。如果安装了pip,则从终端开始,以下命令是Windows和Linux操作系统所需的全部操作。

pip install django

要确认其安装,只需激活Python shell并导入Django。在终端中键入“python”,如:

python

得到类似的东西:

Python 3.6.6 (default, Sep 12 2018, 18:26:19)[GCC 8.0.1 20180414 (experimental) [trunk revision 259383]] on linuxType "help", "copyright", "credits" or "license" for more information.>>>

然后使用以下方法导入Django:

importdjango

如果没有错误,那么一切正常。

优点

几乎没有安全漏洞。

适用于关系数据库。

简单易学。

快速的发展过程。

非常可扩展。

庞大的用户社区。

有很棒的文档。

缺点

Django是单片的,即单层软件应用程序。

对于小规模的应用来说并不是很好。

需要充分了解该框架。

两者都是开源的

Node.js和Django都可以免费使用。使用商业软件时,您不会遇到任何许可问题。它们也是开源的,因此当您发现要处理的功能或错误时,您可以为项目做出贡献。

查看Node.js 存储库和Django 存储库。

学习曲线

Node.js是一个从客户端浏览器环境中取出的JavaScript运行时,Django是一个Python框架。为了能够学习这两种工具,您需要熟悉使用他们的主要编程语言。

要使用Node.js,您需要了解异步编程,Node的本机方法和体系结构。

Node.js有很多在线教程,但是很多例子都很糟糕,这可能会让学习变得更加困难。

要使用Django,需要了解这些方法以及开箱即用的功能。还需要了解框架的MTV(模型模板视图)架构的完整理解。

虽然Django在网上有很多很好的教程,但你会发现有大量过时的教程教授旧的做事方式。

虽然学习Node.js和Django需要了解他们的基础语言,但Node引入了一些复杂的概念,这使得初学者与Django相比有点困难。

语法

Node.js只是在客户端浏览器环境之外的JavaScript。因此,它的语法更像是常规的JavaScript语法。

这是Node.js中的“hello world”应用程序:

var http = require('http');http.createServer(function (req, res) res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World!');}).listen(8080);

Django是基于Python构建的,因此它也使用Python语法。Python中的“Hello world!”就是:

print(“HelloWorld”)

但是,由于Django是一个框架,它强制您使用一个标识MTV模式的特定结构,因此我们需要编写不同的脚本来在Web应用程序上生成“Hello World”。

以下是Hello World的基本views.py文件:

from django.http import HttpResponsedef hello(request):return HttpResponse("Hello world")

这是urls.py文件:

from django.conf.urlsimport include, urlfrom django.contribimport adminfrom mysite.viewsimport hellourlpatterns = [url(r '^admin/', include(admin.site.urls)),url(r '^hello/, hello),]

可扩展性和性能

这两种工具都具有很好的可扩展性和性能 然而,虽然Django似乎具有可扩展性的优势,但Node.js具有性能优势。

可以使用群集模块使用负载均衡器克隆应用程序工作负载的不同实例来扩展Node.js应用程序。但是由于Node.js使用单线程,它在CPU密集型条件下表现不佳。

Django具有高度可扩展性,因为应用程序的缓存非常简单,可以使用MemCache等工具完成。NGINX还可用于确保提供压缩的静态资产,并且即使数据变得更加健壮,它也可用于成功处理数据迁移。

用户社区

Node.js和Django都有大型用户社区。这样做的主要因素是开发人员利用服务器端的JavaScript风格来处理Node.js的Web应用程序的后端,并利用Python易于使用的Django语法。与Django相比,网上有许多与网络相关的教程,有更多的公司将Node作为他们的后端网络技术。

Uber,Twitter,eBay,Netflix,DuckDuckGo,PayPal,LinkedIn,Trello,PayPal,Mozilla和GoDaddy都是使用Node.js作为后端技术的大牌。

Pinterest,Instagram,Eventbrite,Sentry,Zapier,Dropbox,Spotify和YouTube也是使用Django作为后端技术的一些大牌。

结论

这两种工具都非常适合构建Web应用程序,但是,每种工具都很突出。

例如,当您考虑使用关系数据库,许多外部库,将安全性作为列表中的最高优先级,并且需要快速构建应用程序时,Django是一个很好的选择。当您从服务器获得异步堆栈时需要使用Node.js,需要很好的性能,打算从头开始构建功能,并希望有一个应用程序来完成客户端处理的繁重工作。

选择最适合您需求的工具,这两种工具对Web开发都很有用。

查看原文 >>
相关文章