Python Web 框架的选择

2015-01-18 00:14:41 +08:00
 Kilerd

RT,大家用Python写Web的时候,都是用什么框架的。
自己撸一个?

8813 次点击
所在节点    Python
49 条回复
lianghui
2015-01-18 11:30:47 +08:00
稍稍番过一些web框架的源码,比如tornado,bottle,flask,cherrypy, webpy。不过最要自己撸可以去试试webob,openstack,pyramid都架在玩意上。 路由风格xml-rpc ,restful,数据模型activerecord或者data-mapper,这些都可以自己去撸。
tini9
2015-01-18 11:55:09 +08:00
Django并不复杂,不是所有的功能都要学,学最基本的功能就可以上手了
wingyiu
2015-01-18 11:57:47 +08:00
twisted?
binux
2015-01-18 12:02:42 +08:00
如果你喜欢搞一点小的,富交互的,websocket,进程内通信什么的,tornado 异步+单进程方便很多。有消息放内存变量就好了。
XiLiGe
2015-01-18 12:11:32 +08:00
我用的是toroado。
icedx
2015-01-18 12:15:07 +08:00
Kilerd
2015-01-18 12:46:43 +08:00
@icedx 别闹
neoblackcap
2015-01-18 12:54:52 +08:00
百分之99%的人用Python搞web开发我都建议去用Django。自己挖坑自己埋得出的经验。很多时候,开发一个程序必要的功能Django已经提供了,没有提供的,也有跟Django很好结合的第三方库提供了。比如celery, django-rest-framework。除非你是很了解你们的业务,那样可以适当的选择flask,tornado。
否则只要涉及到到什么管理,数据更新,订单。那样百分之百的不管你用什么都会变成Django的样子,想想flask很轻量化啊,但是数据库要不要用orm啊?模版系统要不要啊?授权系统做不做啊?这样的东西搞下来就跟Django一样,还不如直接上Django。至少Django的bug还少点,文档比其他的好无数倍。
shiny
2015-01-18 12:57:52 +08:00
Tornado 的异步会增加工作量。要快速开发而且经验不丰富的情况下不推荐 Tornado。
neoblackcap
2015-01-18 13:02:34 +08:00
@shiny 若是开始接触的异步处理的人,tornado还真不是很合适。就算是用了也是写同步的代码。不过有写javascript经验的人,或者说是已经异步处理入门的人,用tornado还是可以的。tornado已经用generator将异步封装了(提供了语法糖?),让异步执行的代码可以用同步的思路写出来,不过前提是一定要去读文档!!!!
skyduy
2015-01-18 13:06:00 +08:00
先接触的Django,后接触的Flask。
Flask一步一步搭,Django给你现成的。
想深入了解配置和模块分割设计还是学Flask自己搭上去。
打到最后就是Django了。
如@skybr所说
如果让我选择,我选择学Flask 。
geeklian
2015-01-18 13:11:21 +08:00
Django用多了,Python都不会写了,怎么办~煮麼拌!
shiny
2015-01-18 13:38:31 +08:00
@neoblackcap 还有一个文档问题,异步的库比同步的库文档少很多。
neoblackcap
2015-01-18 14:09:07 +08:00
@shiny 异步反人类思维啊,我们人的思维模式都是流水线的啊,哪里有什么回调啊。所以多线程/进程这样的就很符合人类思维了,一对一,流程不变。就是多线程/进程的资源竞争不好搞。
likebeta
2015-01-18 14:25:11 +08:00
@wingyiu twisted
fakestuff
2015-01-18 14:52:52 +08:00
@zhicheng 求tornado详细教程。。
shiny
2015-01-18 15:00:49 +08:00
@neoblackcap 开发的时候无论 nodejs 还是 tornado 都感觉异步思维影响开发速度。
yetone
2015-01-18 15:09:16 +08:00
@shiny 扯。。。
shiny
2015-01-18 15:22:11 +08:00
@yetone 以 nodejs 为例,逻辑稍微复杂点就要上 async.js 或 promise;缺乏经验时,越写到后面越是一团糟。
winiex
2015-01-18 16:03:05 +08:00
用 Tornado 的话最好要对 Unix 网络编程、各种 IO 模型以及至少 Tornado AIO、时间驱动部分的代码有一定的了解,这样才不会把优点用缺了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/163113

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX