我可以和Django一起使用Node.js包吗?

时间:2017-12-03 19:03:23

标签: javascript python node.js django

我想我还没有理解这个概念。如果我使用Django作为运行服务器端代码的后端,是否还有一种方法可以包含Node.js的包。

不是Node.js服务器端代码的另一种环境或语言吗?

如果我可以将节点包与Django一起使用,那该怎么办呢。当人们说" Node js是一个平台而Django是一个框架时,它意味着什么呢? ?

如果你包含一些关于这两个环境的深入细节(这里是网络开发的新内容),我会非常感激。)

2 个答案:

答案 0 :(得分:8)

  

我可以将Node.js包与Django一起使用吗?

没有。 Django是一个Python框架,因此可以在Python解释器中运行。该解释器无法运行node.js模块,因为它们是Javascript并依赖于node.js Javascript引擎。

如果你想比较一下:

node.js <==> python    (runtime language engines with built-in libraries)
express <==> django    (frameworks that run in a given runtime)
  

这有点令人困惑,因为Node.js是服务器端的JavaScript平台

Node.js是一个Javascript编程环境。它可以用于编写服务器,但它也可以用作通用脚本环境来执行您可能想要在计算机上执行的任何操作,例如实现各种构建工具。

webPack是一个用Javascript编写的构建工具,可以在node.js中运行。它的功能恰好是打包客户端Javascript文件,但它可以是任何类型的工具。

在node.js中编写了许多工具,特别是node.js开发人员经常使用的工具(因为他们已经安装了该环境)。

如果你真的需要结合来自node.js和django的功能,那么你将不得不创建两个独立的程序1)使用django的python程序和2)使用你想要的任何Javascript库的node.js程序然后您可以使用您选择的任何IPC机制(TCP,stdio,文件等)在两个程序之间进行通信。

答案 1 :(得分:1)

虽然您需要两个不同的环境来将nodejs用作服务器以及django作为服务器,但node.js在管理现代Web开发中的客户端Javascript包时起着关键作用。 例如,像Webpack这样的工具会为客户端捆绑一系列Javascript模块。打包这些模块及其依赖项的一种更方便的方法是使用Node包管理器npm。 因此,使用Node为您的客户端捆绑Javascript,甚至安装捆绑模块是完全合理的。如果您在客户端上使用Angular之类的框架,则尤其如此。因此,如果你有一个由Django服务器支持的Angular应用程序,你的工作流程可能如下所示:

  • 使用Angular App

  • 创建一个节点项目
  • 使用npm来安装和管理其依赖项

  • 使用ng build --prod来调用webpack以生成可以发送给客户端的捆绑包。

以上所有都将使用Node。

然后:

  • 在Django中为服务器编写模型和业务逻辑

  • 使用一些Django restful框架来呈现客户端应用程序可以调用的REST API。

这有点令人困惑,因为Node.js是一个服务器端的javascript平台,但它已被用于:

  • 为客户端模块提供包装

  • 提供服务器端转换,以准备您的特定网站发送给客户端的内容。