后端开发框架 - FanJin的博客

发表时间:2019-02-15 16:59:44
摘要信息

Python目前主流的应用包括:Web开发、图形界面开发、系统网络运维、网络编程、科学数字计算、3D游戏开发等。 Python的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框架。
一些对比:
http://www.cnblogs.com/wuvist/archive/2011/06/28/django-And-tornado.html

上面说的都是python框架,其实python用来写web并不是最专业的,毕竟Ruby和PHP拥有着更大的web生态圈,专注于写网站。java和C++能写出真正高性能的网站。稍微了解下其他语言的web框架:
Ruby:Rails等。
PHP:如Laravel、Yii、Symfony、ThinkPHP、Codeigniter等(ThinkPHP虽然写起来没有Laravel爽,但是性能还是不错的,Yii中庸)。
JS:Node.js。
Java:JSP、java servlet。(许多大型企业用java)
C++:性能最佳。(鹅厂专注于C++,当然也有历史原因)
Go:新兴的高性能语言。

不过,写后端,我暂时只用python,够用了。Java虽然也用的多,暂时写写Android就行了,之后做大型项目,可以考虑java吧。JS就只用来写写前端算了。Ruby就不碰了。PHP有所了解,遇到难点可以找XZ兄弟。C++写服务器是比较痛苦的,鹅厂是因为积攒了很多C++库,我暂时就不要作死了吧(写游戏服务器可能还说得过去)(用C系列写后端,是想退回到CGI时代吗…)。总而言之,写服务器程序,主要用python和java吧。

附一个性能比较:
http://blog.csdn.net/edisonbeok/article/details/50697021
个人还是很喜欢tornado的。

附:python中的同步web与异步web
同步处理一般基于WSGI。
异步处理,python2时代主要有三个库:Twisted、Tornado 和 gevent。python3.4开始又出现asyncio的概念,aiohttp则是基于asyncio的http框架。之后又陆续出现了一批基于asyncio的HTTP框架,性能都不弱于Tornado。


查看原文链接 本文由系统自动采集,如有侵犯您的权益,请通知网站管理员,我们会及时处理 点我投诉
40% Complete (success)