龙卷风替代Django还是互补?

我有几个关于Tornado和其他Web框架的问题。

1)龙卷风声称是一个networking服务器(一个非阻塞的,因此性能很高),所以有人说它不扮演django –ie的angular色,他们说龙卷风不是一个web框架。

但是,它确实提供了一个我认为是networking框架( http://www.tornadoweb.org/documentation#main-modules ) – 这样,它似乎将djangoreplace为Web开发框架。

我的上述理解是否正确?

2)通常,在Nginx后面build立了几个Tornados。 Tomcat通常也build立在Apache Web服务器之后。 我可以说龙卷风扮演完全相同的angular色Tomcat的Javanetworking服务器? 如果答案是肯定的,那么Tornado就是一个Web框架。

3)我看了一些文章说,一起使用Tornado和Django,比如http://www.jeremybowers.com/blog/post/3/on-deploying-tornado-web-server-framework/ ,但是我在网上看了一些文章声称“如果你使用Django,那么你失去了Tornado的asynchronous”,这是真的还是假? 一个相关的问题,但是如果Tornado本身就是一个web框架,就像我在1)中说的那样,为什么人们会根本就使用Django呢? (导致插件?)

有人能给我一个101介绍吗?

要回答这个问题,

  • 不,龙卷风不是Django的替代品。 这是一个select。

  • 是的,它们是互补的,但不在同一个过程中(*)

我会使用Django,当它是一个大型团队的努力和/或需要在SQL数据库上运行。

我会用Tornado来做其他事情。 IE浏览器。 个人项目,WebSocket相关的应用程序,使用NoSQL后端的应用程序。

(*)不要打扰在龙卷风里面运行django,除非你真的有强烈的要求。

  1. 龙卷风是大多数定义的Web服务器 Web框架,但它是一个相当小的框架(与Rails或Django相比)。 龙卷风模块是松散耦合的,所以可以只使用Web服务器组件(甚至只是较低级别的IO循环)。 与Django相比,Tornado没有太多的function。 例如,在龙卷风中没有真正的模型抽象,你必须自己推出。

  2. 当你在Nginx后面运行一个Tornado应用程序时,这是你的应用程序运行–Nginx只是代理它。 我相信Tomcat是一个应用程序服务器,不同于你的应用程序。 我不会叫Tomcat一个Web框架。

  3. Django不是asynchronous的,所以一般来说你的应用程序在使用Django组件的时候会被阻塞。 这可能不是一个大问题,这取决于你在做什么。 龙卷风开发者已经表示 (大量解释),对于大多数应用程序来说,最大的收获来自于在等待客户端(即web浏览器)时不被阻塞。 例如,对数据库进行阻塞并不是什么大问题。

Django和Tornado都有很多优点和缺点,两者都有很多的select – 绝对不是两者之间的select。 下面是为什么你可能想要使用Django的一个非常快速的列表:

赞成Django:

  • 这是一个更完整的堆栈(例如pipe理页面非常容易实现)
  • 它更加成熟(插件,教程等)
  • 这是更好的文件
  • 它的ORM非常好