初学web框架,选哪一个好呢? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
zztczcx
V2EX    Python

初学web框架,选哪一个好呢?

  •  
  •   zztczcx
    zztczcx 2011-05-17 10:12:11 +08:00 22579 次点击
    这是一个创建于 5269 天前的主题,其中的信息可能已经有所发展或是发生改变。
    因为是初学,所以想先用一下轻量级的,目前对flask 和 web.py感兴趣。
    感觉django和tornado 好像是属于比较大的了。。。
    35 条回复    1970-01-01 08:00:00 +08:00
    beston
        1
    beston  
       2011-05-17 10:14:50 +08:00
    php的飘过~~
    felinx
        2
    felinx  
       2011-05-17 10:27:48 +08:00   1
    Tornado算小的,浅谈Python web框架 http://feilong.me/2011/01/talk-about-python-web-framework 去看看吧,供参考。
    killall
        3
    killall  
       2011-05-17 11:03:03 +08:00
    tornado 很小 跟WEB.PY一样
    fengluo
        4
    fengluo  
       2011-05-17 11:46:48 +08:00   1
    tornado跟web.py类似。
    对于初学者来说话,还是选django吧,毕竟文档丰富些。
    qichangxing
        5
    qichangxing  
       2011-05-17 16:27:43 +08:00
    web.py
    chuangbo
        6
    chuangbo  
       2011-05-17 16:47:49 +08:00
    @fengluo django 会把人吓跑。
    FriendFeed 创始人用了 web.py 作为他们的框架,然后太喜欢 web.py 以至于创造了一个很像 web.py 的框架 Tornado,但是性能会强很多. 所以推荐 Tornado 或者 web.py

    "[web.py inspired the] web framework we use at FriendFeed [and] the webapp framework that ships with App Engine..."
    Brett Taylor, co-founder of FriendFeed and original tech lead on Google App Engine
    fengluo
        7
    fengluo  
       2011-05-17 17:16:23 +08:00
    @chuangbo django还好吧~单纯谈论性能的话,我也是极力推荐tornado的。我自己在写的项目就是用tornado的。不过tornado对于初学者实在太不友好了,官网文档匮乏的要命,很多问题要泡google grounp,看源码或者在社区里狂搜才能解决。
    django相对于tornado性能固然不佳,不过好在是一站式的解决方案,而且文档啊社区什么的支持都很充分。对于初学者而言,不妨先从django入手,再学习别的框架,就很容易上手了,优劣什么的就一目了然了。python框架优势也就在于框架的多种多样。
    或者学习gae的webapp框架,支持都比较多,比较容易一些。
    raptium
        8
    raptium  
       2011-05-17 17:21:15 +08:00
    同意 @fengluo
    Django 的文档写得非常好 真的
    chuangbo
        9
    chuangbo  
       2011-05-17 17:32:44 +08:00
    @fengluo Django 东西太多,一个 Tutorial 就要写4页,2个小时内翻不完的文档会把新手吓跑的。
    felinx
        10
    felinx  
       2011-05-17 18:55:32 +08:00
    Tornado的文档主要在代码里,所以要用好Tornado必须多看看源码,而Tornado的社区是非常友好的,虽然前老大Bret不出现了,但现项目主要维护人Ben几乎每个问题都会回答,即使你不关系某个问题,也能从Ben的话中学到很多东西。
    raptium
        11
    raptium  
       2011-05-17 18:56:41 +08:00   1
    @chuangbo
    新手更怕的是 文档只有2个网页 剩下的就是机器生成的 api documentation
    netwiser
        12
    netwiser  
       2011-05-17 22:13:57 +08:00   1
    Where the documentation ready, the framework is almost out of date.

    As Felinx said, source code and test case are the best documentation.
    fanzeyi
        13
    fanzeyi  
       2011-05-17 22:14:42 +08:00
    我支持 webpy......
    shawiz
        14
    shawiz  
       2011-05-18 10:42:44 +08:00
    没人提 Flask 吗?现在它是最火的微框架了。
    Django 的确适合初学,因为很多东西都为你准备好了,它的文档也非常完善明了。
    Flask 文档也很齐全,不过因为是微框架,很多东西都要自己加,比如 ORM 模版引擎等等。
    breakaway
        15
    breakaway  
       2011-05-18 11:04:48 +08:00
    同问,flask不知道有没有人出来评价下。
    huangz
        16
    huangz  
       2011-05-18 12:15:29 +08:00   1
    tornado,web.py,django,flask都用过了,个人看法:

    tornado
    优点:高性能,内置多个国外SNS的接口。
    缺点:无文档

    web.py
    优点:微框架,小巧,组合其他库方便。
    缺点:跟flask比起来,web.py并不算漂亮。web.py更像是练手的作品,web.py的作者现在自己都不用web.py

    django
    优点:full-stack框架,数据库、session、admin模块什么的都自带了,不用费心找其他东西组合。
    缺点:django的优点即它的缺点。

    flask
    优点:(同web.py),另外的一点是它的文档是四个框架当中最好的。
    缺点:只有一个核心,其他数据库之类的要自己选,如果你对python的库(或其他如SQL之类的技术)不熟悉,那flask可能不太适合。
    felinx
        17
    felinx  
       2011-05-18 13:33:44 +08:00
    关于Python框架入手的,也可以参考一下这里面的一些讨论 http://www.zhimaq.com/questions/18/pythonweb
    lijia18
        18
    lijia18  
       2011-10-01 21:13:46 +08:00
    @huangz flask可以使用tornado和web.py的db操作类,我也喜欢flask,唯一担心的是它的稳定性如何,毕竟没有被长时间用过,而且也没有什么大项目。
    spark
        19
    spark  
       2011-10-01 21:41:18 +08:00
    Rails
    acdea4effdbb420d
        20
    acdea4effdbb420d  
       2011-10-01 22:01:13 +08:00
    python的话django或者flask

    ruby更好..一直被模仿,从未被超越
    django -> rails
    flask -> sinatra

    flask
    优点:(同web.py),另外的一点是它的文档是四个框架当中最好的。
    缺点:只有一个核心,其他数据库之类的要自己选,如果你对python的库(或其他如SQL之类的技术)不熟悉,那flask可能不太适合。

    不知道你这个缺点是怎么总结出来的
    python的数据库从来都不是问题,喜欢orm和sql就用sqlalchemy,不喜欢就直接上对应的库,pymongo, redispy
    huangz
        21
    huangz  
       2011-10-01 23:27:44 +08:00   1
    @lijia18 稳定性没什么好说的,Flask这种微框架其实就是直接在协议之上包了薄薄一层而已,与其担心Flask的稳定性,不如担心你自己写的程序的稳定性。

    如果你非要列举一个“知名”的Flask案例的话,我听说MoinMoin(Python写的wiki程序,应用比较广)已经用Flask来开发它们的下一个版本了。


    @acdea4effdbb420d 别激动,伙计,我可没说说过Python的数据库的库(library)少之类的话:

    “只有一个核心,其他数据库之类的要自己选,如果你对python的库(或其他如SQL之类的技术)不熟悉,那flask可能不太适合。 ”

    我这句话的意思是,Flask这种微框架,没有像Rails或者Django那样为你提供一个自带的ORM,而将数据库的选择留着了框架的使用者自己,这种选择对于一个初级使用者来说可能是一个大问题(其实,我相信数据库的选择问题对任何人来说都是大问题),如果使用自带ORM的框架,学习成本就低一些,仅此而已,完全没有说“Python的数据库的库有问题”。

    不过,说回来,Python的关系式数据库的库的确是比较齐全,但是在NoSQL数据库方面,Python已经被Ruby(或者说Rails)拉下一大段了:比如MongoDB,Ruby的MongoId的完整度,目前就没有一个Python库可以媲美,就算是比较活跃的MongoEngine,比起MongoId,也还有很长的路要走。

    部分由于这个原因,我已经开始学习(其实是复习)Ruby/Rails了,当我以350km/h在轨道上飞驰的时候,我会怀念当初使用Python的日子。。。
    args
        22
    args  
       2011-10-02 00:08:28 +08:00   1
    ror
    lijia18
        23
    lijia18  
       2011-10-08 17:07:19 +08:00
    @huangz 谢谢细心解答,与其说我担心flask的稳定性,事实上我是担心它那些插件以及api的稳定性,它的官网也说not stable yet,最近用的越来越顺手,flask的确是一个非常优秀的python框架。
    Fikhtengol
        24
    Fikhtengol  
       2012-09-06 20:56:47 +08:00
    torrnado是web server,其它是web framework.你可以torrnado+framework
    clino
        25
    clino  
       2012-09-07 09:33:30 +08:00
    fwee
        26
    fwee  
       2012-09-07 10:49:08 +08:00
    ruby on rails
    zztczcx
        27
    zztczcx  
    OP
       2012-09-07 10:49:42 +08:00
    @huangz 问一下,flask要怎么封装一个orm? 或者提供点资料,还有就是像redis这种,要怎么弄呢?
    sharpblade
        28
    sharpblade  
       2012-09-07 14:10:08 +08:00   1
    sinatra
    louise
        29
    louise  
       2012-09-07 17:18:18 +08:00
    lg`~好上进哦~加油哦!
    stackpop
        30
    stackpop  
       2012-09-07 17:26:20 +08:00
    django,感觉蛮简单的~我基本上拿来就用,python我一开始完全不熟悉的。
    yinsigan
        31
    yinsigan  
       2012-09-08 11:32:40 +08:00
    推荐rails吧。
    flyingkid
        32
    flyingkid  
       2012-09-08 11:50:49 +08:00
    python用flask和web.py。前提看完笨方法学python
    zhuf
        33
    zhuf  
       2012-09-08 12:53:50 +08:00
    rails吧,这样就不纠结python的各种框架。
    PrideChung
        34
    PrideChung  
       2012-09-08 14:32:19 +08:00
    @zhuf 我是来砸场的,其实Sinatra也不错 XD
    wuShiJingZuo
        35
    wuShiJingZuo  
       2012-12-16 14:31:18 +08:00
    @stackpop 看完了a byte of python,直接上django?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2491 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 11:11 PVG 19:11 LAX 04:11 JFK 07:11
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86