python – 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都使用相同的编程语言.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


我最近重新拾起了计算机视觉,借助Python的opencv还有face_recognition库写了个简单的图像识别demo,额外定制了一些内容,原本想打包成exe然后发给朋友,不过在这当中遇到了许多小问题,都解决了,记录一下踩过的坑。 1、Pyinstaller打包过程当中出现warning,跟d
说到Pooling,相信学习过CNN的朋友们都不会感到陌生。Pooling在中文当中的意思是“池化”,在神经网络当中非常常见,通常用的比较多的一种是Max Pooling,具体操作如下图: 结合图像理解,相信你也会大概明白其中的本意。不过Pooling并不是只可以选取2x2的窗口大小,即便是3x3,
记得大一学Python的时候,有一个题目是判断一个数是否是复数。当时觉得比较复杂不好写,就琢磨了一个偷懒的好办法,用异常处理的手段便可以大大程度帮助你简短代码(偷懒)。以下是判断整数和复数的两段小代码: 相信看到这里,你也有所顿悟,能拓展出更多有意思的方法~
文章目录 3 直方图Histogramplot1. 基本直方图的绘制 Basic histogram2. 数据分布与密度信息显示 Control rug and density on seaborn histogram3. 带箱形图的直方图 Histogram with a boxplot on t
文章目录 5 小提琴图Violinplot1. 基础小提琴图绘制 Basic violinplot2. 小提琴图样式自定义 Custom seaborn violinplot3. 小提琴图颜色自定义 Control color of seaborn violinplot4. 分组小提琴图 Group
文章目录 4 核密度图Densityplot1. 基础核密度图绘制 Basic density plot2. 核密度图的区间控制 Control bandwidth of density plot3. 多个变量的核密度图绘制 Density plot of several variables4. 边
首先 import tensorflow as tf tf.argmax(tenso,n)函数会返回tensor中参数指定的维度中的最大值的索引或者向量。当tensor为矩阵返回向量,tensor为向量返回索引号。其中n表示具体参数的维度。 以实际例子为说明: import tensorflow a
seaborn学习笔记章节 seaborn是一个基于matplotlib的Python数据可视化库。seaborn是matplotlib的高级封装,可以绘制有吸引力且信息丰富的统计图形。相对于matplotlib,seaborn语法更简洁,两者关系类似于numpy和pandas之间的关系,seabo
Python ConfigParser教程显示了如何使用ConfigParser在Python中使用配置文件。 文章目录 1 介绍1.1 Python ConfigParser读取文件1.2 Python ConfigParser中的节1.3 Python ConfigParser从字符串中读取数据
1. 处理Excel 电子表格笔记(第12章)(代码下载) 本文主要介绍openpyxl 的2.5.12版处理excel电子表格,原书是2.1.4 版,OpenPyXL 团队会经常发布新版本。不过不用担心,新版本应该在相当长的时间内向后兼容。如果你有新版本,想看看它提供了什么新功能,可以查看Open
1. 发送电子邮件和短信笔记(第16章)(代码下载) 1.1 发送电子邮件 简单邮件传输协议(SMTP)是用于发送电子邮件的协议。SMTP 规定电子邮件应该如何格式化、加密、在邮件服务器之间传递,以及在你点击发送后,计算机要处理的所有其他细节。。但是,你并不需要知道这些技术细节,因为Python 的
文章目录 12 绘图实例(4) Drawing example(4)1. Scatterplot with varying point sizes and hues(relplot)2. Scatterplot with categorical variables(swarmplot)3. Scat
文章目录 10 绘图实例(2) Drawing example(2)1. Grouped violinplots with split violins(violinplot)2. Annotated heatmaps(heatmap)3. Hexbin plot with marginal dist
文章目录 9 绘图实例(1) Drawing example(1)1. Anscombe’s quartet(lmplot)2. Color palette choices(barplot)3. Different cubehelix palettes(kdeplot)4. Distribution
Python装饰器教程展示了如何在Python中使用装饰器基本功能。 文章目录 1 使用教程1.1 Python装饰器简单示例1.2 带@符号的Python装饰器1.3 用参数修饰函数1.4 Python装饰器修改数据1.5 Python多层装饰器1.6 Python装饰器计时示例 2 参考 1 使
1. 用GUI 自动化控制键盘和鼠标第18章 (代码下载) pyautogui模块可以向Windows、OS X 和Linux 发送虚拟按键和鼠标点击。根据使用的操作系统,在安装pyautogui之前,可能需要安装一些其他模块。 Windows: 不需要安装其他模块。OS X: sudo pip3
文章目录 生成文件目录结构多图合并找出文件夹中相似图像 生成文件目录结构 生成文件夹或文件的目录结构,并保存结果。可选是否滤除目录,特定文件以及可以设定最大查找文件结构深度。效果如下: root:[z:/] |--a.py |--image | |--cat1.jpg | |--cat2.jpg |
文章目录 VENN DIAGRAM(维恩图)1. 具有2个分组的基本的维恩图 Venn diagram with 2 groups2. 具有3个组的基本维恩图 Venn diagram with 3 groups3. 自定义维恩图 Custom Venn diagram4. 精致的维恩图 Elabo
mxnet60分钟入门Gluon教程代码下载,适合做过深度学习的人使用。入门教程地址: https://beta.mxnet.io/guide/getting-started/crash-course/index.html mxnet安装方法:pip install mxnet 1 在mxnet中使
文章目录 1 安装2 快速入门2.1 基本用法2.2 输出图像格式2.3 图像style设置2.4 属性2.5 子图和聚类 3 实例4 如何进一步使用python graphviz Graphviz是一款能够自动排版的流程图绘图软件。python graphviz则是graphviz的python实