Python 有哪些好的 Web 框架?
程序员文章站
2022-05-28 14:46:04
...
pylons 如何?
Flask 很轻,花很少的成本就能够开发一个简单的网站。非常适合初学者学习。
Flask 框架学会以后,可以考虑学习插件的使用。例如使用 WTForm + Flask-WTForm 来验证表单数据,用 SQLAlchemy + Flask-SQLAlchemy 来对你的数据库进行控制。
BTW:果壳网基于 Flask 开发的。
另外也简单介绍下其他框架:
1. Django。如楼上所说,是一个全能型框架。目前 Django 的使用面还是很广的,有学习的价值,但是不建议初学者学习,因为要学习的东西太多了,一下子难以吸收会失去兴趣。当然,Django 的目的是为了让开发者能够 快速 地开发一个网站,它提供了很多模块,其中我最喜欢的就是 admin 模块,http://your.site.com/admin 就进入了网站的后台(内置的哦~)方便地对数据进行操作,等等。。。。因此,如果对 Django 熟悉的话,papapa 一下子就写好一个网站的原型了。
2. Tornado。传说中性能高高的框架。Tornado 是一个很好的框架,支持异步处理的功能,这是它的特点,其他框架不支持。另外一点是,Tornado 的设计似乎更注重 RESTful URL。但 Tornado 提供了网站基本需要使用的模块外,剩下的则需要开发者自己进行扩展。例如数据库操作,虽然内置了一个 database 的模块(后来独立出去了,现在叫做 torndb,bdarnell/torndb · GitHub)但是不支持 ORM,快速开发起来还是挺吃力的。如果需要 ORM 支持的话,还需要自己写一层将 SQLAlchemy 和 Tornado 联系起来,而且这里还有一个坑。
BTW:知乎就是基础 Tornado 开发的。
3. Bottle。Bottle 和 Flask 都属于轻量级的 Web 框架。但是 Bottle 似乎落寞了。我觉得跟他的 API 设计有关系。个人认为 Bottle 使用起来不那么顺手,因此也用得少。这里不做太多介绍。
4. web.py。也是很轻的一个框架,使用不多,也不做介绍。
5. web2py。我看楼上都没有对这个框架做介绍。这个框架是 Google 在 web.py 基础上二次开发而来的,兼容 GAE 。性能据说很高,曾经用他来做自己的主页,感觉也还不错。缺点同样是对扩展支持不太好,需要自己进行扩展。
6. Quixote。著名的 豆瓣 就是基于 Quixote 开发的。跟上面几个框架不同,Quixote 的路由会有些特别。另外 Quixote 的性能据说也好。 来,自己动手写一个:不超过1000行代码
http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0014023080708565bc89d6ab886481fb25a16cdc3b773f0000
再贴上源码,1500行,一半都是注释:
https://github.com/michaelliao/awesome-python-webapp/blob/release/www/transwarp/web.py Tornado
Tornado Web Server
中文官网镜像 Tornado Web服务器
另一个好处是因为是facebook开源的,加上自身优秀的代码质量和傲娇的效率表现,目前非常火,诞生了一大批的优秀产品,如你在它上面提出这个问题的 知乎, quora,INK361 ,42区 . 遇见 等等。 我觉得新手还是不要用Django这样庞大的东西,建议Flask,很多东西自己实现。有一定的认识之后,再用Django,会觉得很顺心。
越是大的项目,越会觉得框架能帮助的太少,更多的是定制.Django修改起来相当麻烦.但微框架你从一开始就差不多是在定制了. 推荐uliweb:
文档: Uliweb-Doc
邮件列表: http://groups.google.com/group/uliweb
QQ讨论组: 162487035
有一些针对初学者的教程,QQ群里也有不少初学者在讨论,在邮件列表和QQ群中都可以和作者讨论问题 如果是学习,可以自己手撸一个框架
python模拟Django框架
Day 5 - 编写Web框架
Bottle: Python Web Framework
照着抄,然后改。反正Python造*简单,撸呗,撸多了就好,换哪个框架都不怕。 我学python web开发,是django -> web.py -> tornado -> bottle -> flask,现在团队内部使用的是基于flask的二次开发框架。
最初学django,因为随手搜一下python web开发框架,满屏都是讲django的,就学学咯。
后来觉得,太tmd重了。逆反心理作用下,就去看web.py了。
web.py其实挺不错的,可惜惊闻作者仙逝无人维护,心里一凉。刚好又听说tornado性能好、像web.py,学学也不坏。其实一直都喜欢这种非阻塞IO的高性能
后来接触到gevent,知道非阻塞IO还有更优雅的实现方式。而tornado确实不满足我内心对“简洁”的苛求,于是又一头栽进bottle这个简单到只有一个文件的库中,相见恨晚
后来朋友推荐flask,原因是极像bottle但对大项目组织支持更好,而且插件更多、生态更好。抱着试试的心态学起来。然后就用到现在了 bottle 也不错,短小精悍啊 pyramid用了,还是比较*的。 我的推荐是轻量级的 Flask,全能型的 Django,重型的 Pyramid。
学习目的的话,推荐从 Django 入手,了解后转 Flask。
回复内容:
对初学者来说,循序渐进是最重要的,我推荐学习 Flask(Welcome | Flask (A Python Microframework))Flask 很轻,花很少的成本就能够开发一个简单的网站。非常适合初学者学习。
Flask 框架学会以后,可以考虑学习插件的使用。例如使用 WTForm + Flask-WTForm 来验证表单数据,用 SQLAlchemy + Flask-SQLAlchemy 来对你的数据库进行控制。
BTW:果壳网基于 Flask 开发的。
另外也简单介绍下其他框架:
1. Django。如楼上所说,是一个全能型框架。目前 Django 的使用面还是很广的,有学习的价值,但是不建议初学者学习,因为要学习的东西太多了,一下子难以吸收会失去兴趣。当然,Django 的目的是为了让开发者能够 快速 地开发一个网站,它提供了很多模块,其中我最喜欢的就是 admin 模块,http://your.site.com/admin 就进入了网站的后台(内置的哦~)方便地对数据进行操作,等等。。。。因此,如果对 Django 熟悉的话,papapa 一下子就写好一个网站的原型了。
2. Tornado。传说中性能高高的框架。Tornado 是一个很好的框架,支持异步处理的功能,这是它的特点,其他框架不支持。另外一点是,Tornado 的设计似乎更注重 RESTful URL。但 Tornado 提供了网站基本需要使用的模块外,剩下的则需要开发者自己进行扩展。例如数据库操作,虽然内置了一个 database 的模块(后来独立出去了,现在叫做 torndb,bdarnell/torndb · GitHub)但是不支持 ORM,快速开发起来还是挺吃力的。如果需要 ORM 支持的话,还需要自己写一层将 SQLAlchemy 和 Tornado 联系起来,而且这里还有一个坑。
BTW:知乎就是基础 Tornado 开发的。
3. Bottle。Bottle 和 Flask 都属于轻量级的 Web 框架。但是 Bottle 似乎落寞了。我觉得跟他的 API 设计有关系。个人认为 Bottle 使用起来不那么顺手,因此也用得少。这里不做太多介绍。
4. web.py。也是很轻的一个框架,使用不多,也不做介绍。
5. web2py。我看楼上都没有对这个框架做介绍。这个框架是 Google 在 web.py 基础上二次开发而来的,兼容 GAE 。性能据说很高,曾经用他来做自己的主页,感觉也还不错。缺点同样是对扩展支持不太好,需要自己进行扩展。
6. Quixote。著名的 豆瓣 就是基于 Quixote 开发的。跟上面几个框架不同,Quixote 的路由会有些特别。另外 Quixote 的性能据说也好。 来,自己动手写一个:不超过1000行代码
http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0014023080708565bc89d6ab886481fb25a16cdc3b773f0000
再贴上源码,1500行,一半都是注释:
https://github.com/michaelliao/awesome-python-webapp/blob/release/www/transwarp/web.py Tornado
Tornado Web Server
Tornado is an open source version of the scalable, non-blocking web server and tools that power FriendFeed. The FriendFeed application is written using a web framework that looks a bit like web.py or Google's webapp, but with additional tools and optimizations to take advantage of the underlying non-blocking infrastructure.用tornado的一个很明显的好处是,有些*自己造才能学到东西。
中文官网镜像 Tornado Web服务器
另一个好处是因为是facebook开源的,加上自身优秀的代码质量和傲娇的效率表现,目前非常火,诞生了一大批的优秀产品,如你在它上面提出这个问题的 知乎, quora,INK361 ,42区 . 遇见 等等。 我觉得新手还是不要用Django这样庞大的东西,建议Flask,很多东西自己实现。有一定的认识之后,再用Django,会觉得很顺心。
越是大的项目,越会觉得框架能帮助的太少,更多的是定制.Django修改起来相当麻烦.但微框架你从一开始就差不多是在定制了. 推荐uliweb:
文档: Uliweb-Doc
邮件列表: http://groups.google.com/group/uliweb
QQ讨论组: 162487035
有一些针对初学者的教程,QQ群里也有不少初学者在讨论,在邮件列表和QQ群中都可以和作者讨论问题 如果是学习,可以自己手撸一个框架
python模拟Django框架
Day 5 - 编写Web框架
Bottle: Python Web Framework
照着抄,然后改。反正Python造*简单,撸呗,撸多了就好,换哪个框架都不怕。 我学python web开发,是django -> web.py -> tornado -> bottle -> flask,现在团队内部使用的是基于flask的二次开发框架。
最初学django,因为随手搜一下python web开发框架,满屏都是讲django的,就学学咯。
后来觉得,太tmd重了。逆反心理作用下,就去看web.py了。
web.py其实挺不错的,可惜惊闻作者仙逝无人维护,心里一凉。刚好又听说tornado性能好、像web.py,学学也不坏。其实一直都喜欢这种非阻塞IO的高性能
后来接触到gevent,知道非阻塞IO还有更优雅的实现方式。而tornado确实不满足我内心对“简洁”的苛求,于是又一头栽进bottle这个简单到只有一个文件的库中,相见恨晚
后来朋友推荐flask,原因是极像bottle但对大项目组织支持更好,而且插件更多、生态更好。抱着试试的心态学起来。然后就用到现在了 bottle 也不错,短小精悍啊 pyramid用了,还是比较*的。 我的推荐是轻量级的 Flask,全能型的 Django,重型的 Pyramid。
学习目的的话,推荐从 Django 入手,了解后转 Flask。
推荐阅读
-
Linux系统上Nginx+Python的web.py与Django框架环境
-
CGI和servlet运行方式本质的区别是什么?PHP和Java在Web开发的原理有哪些本质不同?
-
手机赚钱好方法有哪些,7个靠谱的网络兼职!
-
MATLAB和Python 相互无法替代的地方有哪些,对于以后一直做科研的人,两种语言到底哪家强?
-
有哪些你不知道的Python小工具
-
Python的主要应用领域有哪些?Python的介绍
-
有哪些大型公司在使用 Python?有哪些知名项目是主要由 Python 写成的?
-
我的第一个python web开发框架(31)——定制ORM(八)
-
Python实现手写一个类似django的web框架示例
-
由框架产生的有关问题,询问有什么好的解决办法不?