我有几个关于Tornado和其他Web框架的问题。
1)Tornado声称自己是一个web服务器(一个非阻塞的服务器,因此性能很高),所以有些人说它不扮演django的角色--也就是说,他们说Tornado不是一个web框架。
然而,我认为它确实提供了一个web框架(http://www.tornadoweb.org/documentation#main-modules)--通过这种方式,它似乎取代了django成为web开发框架。
我的上述理解是否正确?
2)通常情况下,在Nginx后面安装了几个Tornado。Tomcat也通常安装在Apache Web服务器后面。我能说Tornado扮演着Tomcat在Java Web服务器上所扮演的角色吗?如果答案是肯定的,那么Tornado就是一个Web框架。
3)我读过一些文章说一起使用Tornado和Django,比如http://www.jeremybowers.com/blog/post/3/on-deploying-tornado-web-server-framework/,但是我在网上读到一些文章声称“如果你使用Django,那么你会失去Tornado的异步功能”,这是真的还是假的?一个相关的问题是,如果Tornado本身就像我在1)中说的那样是一个Web框架,为什么人们会费心使用Django呢?
有人能给予我介绍一下吗?
2条答案
按热度按时间ubof19bj1#
为了回答这个问题,
当Django是一个大的团队工作和/或需要在SQL数据库上运行时,我会使用Django。
我会用Tornado来做其他的事情,比如个人项目、WebSocket相关的应用程序,或者使用NoSQL后端的应用程序。
(*)不要在Tornado里面运行Django,或者反过来运行Django,除非你真的有很强的需求。
cu6pst1q2#
1.当你在Nginx后面运行一个Tornado应用程序时,那是你的应用程序在运行-- Nginx只是它的代理。我认为Tomcat是一个应用服务器,与你的应用程序不同。我不会把Tomcat称为一个Web框架。
1.[更新:Django在3.0中增加了对异步视图的支持,在4.0中增加了对一些ORM查询的支持。这一点已经不准确了]Django不是异步的,所以通常你的应用在使用Django组件时会阻塞。这可能不是什么大问题,这取决于你在做什么。Tornado的开发人员已经声明(解释得很重)对于大多数应用程序来说,最大的胜利来自于在等待客户端(即Web浏览器)时不阻塞。例如,如果您保持查询速度较快,在数据库上阻塞并不是一个大问题。
Django和Tornado都有很多优点和缺点,而且两者都有很多替代方案--这绝对不是两者之间的选择。下面是一个非常快速的列表,列出了为什么你可能想使用Django:
Django的优点: