后端开发框架
Python目前主流的应用包括:Web开发、图形界面开发、系统网络运维、网络编程、科学数字计算、3D游戏开发等。Python的web框架很多很多,百花齐放。个人接触最多的是这四个大佬:Django、Flask、Tornado、Aiohttp,够用就行,以后就用这四个吧,性能需求小的直接用Django快速搞定。Tornado是最早接触的web框架,异步并发首选。Tornado不仅是web...
Python目前主流的应用包括:Web开发、系统网络运维、网络编程、科学数字计算、3D游戏开发等。
Python的web框架比较多。个人接触最多的是这四个大佬:Django、Flask、Tornado、Aiohttp,够用就行,以后就用这四个吧,性能需求小的直接用Django快速搞定。
Tornado是最早接触的web框架,异步并发首选。Tornado不仅是web框架,还实现了http服务器。由于WSGI是同步模型,Tornado自己实现了一套异步处理,但同时也提供WSGI的接入,只是接入WSGI的部分一律不能使用异步。Tornado其实和一般的web框架不是一个级别的存在,甚至可以充当Nginx的角色,有时候也用来装载Django、Bottle之类的框架。但是据说不建议使用Tornado进行多台服务器的部署。
然后发现其实Django能够满足大部分自己的需求,功能齐全、易上手。还有Flask也比较灵活。Aiohttp的话,最轻,基于asyncio,可以做出python里面性能极好的后端,但是需要自己写很多封装,封装成一个自己的web框架。
此外,Bottle、webpy、gevent 等常常有所耳闻。其余的还有web2py、Quixote、Pyramid、Falcon、Muffin、Wheezy Web、Sanic等等,网上随便搜搜就能搜到很多python框架。
一些对比:介绍两个Python web框架:Django & Tornado
上面说的都是python框架,其实python用来写web并不是主流,毕竟Ruby和PHP拥有着更大的web生态圈,专注于写网站,Java和C++能写出真正高性能的大型网站。稍微了解下其他语言的web框架:
Ruby:Rails等。
PHP:如Laravel、Yii、Symfony、ThinkPHP、Codeigniter等。
Javascript:Node.js。
Java:最经典的是Spring系列(许多大型企业用Java)。
C++:性能可能较好。(鹅厂专注于C++,当然也有历史原因)
Go:新兴的高性能语言,并发能力较强。
不过,写后端,本人暂时只用Python的几个常用框架 和 Java的Spring系列即可。
附一个性能比较:thinkphp 与 tornado 性能测试比较
个人还是很喜欢tornado的。
附:python中的同步web与异步web
同步处理一般基于WSGI。
异步处理,python2时代主要有三个库:Twisted、Tornado 和 gevent。python3.4开始又出现asyncio的概念,aiohttp则是基于asyncio的http框架。之后又陆续出现了一批基于asyncio的HTTP框架,性能都不弱于Tornado。
2019年更新:
目前Go逐渐流行,可以尝试使用Go玩玩啦(当然,用Python做机器学习依然是不错的选择)。
更多推荐
所有评论(0)