今天我们来讨论一下、django、flask和tornado的部署对比:
1. 概述
在python的web开发框架中,目前使用量最高的几个是django、flask和tornado, 经常会有人拿这几个对比,相信大家的初步印象应该是 django大而全、flask小而精、tornado性能高。
tornado性能比django和flask高很多是因为tornado在底层io处理机制上和django以及flask有着根本的区别:
1. tornado、gevent、asyncio、aiohttp:底层使用的是事件循环+协程
2. django和flask: 传统的模型,阻塞io模型
虽然django和flask比tornado和asyncio性能低,但是他们作为老牌的框架:生态丰富,代码容易理解,简单啊!但是我相信通过asyncio和tornado进行并发编程必定会成为未来的另一个主流方向。这里我个人更看好基于asyncio的框架。nodejs和go语言都得益于协程轻松实现了高并发。
但是今天我们要介绍的并不是协程,而是从这些框架的部署来进行对比:
2. django和flask
在django和flask部署中,我们经常会遇到以下几个概念:
web框架、 wsgi、 uwsgi、 uWSGI、 nginx
这些概念是什么意思:
- WSGI:全称是Web Server Gateway Interface,WSGI不是服务器,python模块,框架,API或者任何软件,只是一种规范&