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 · 21783 次点击
    这是一个创建于 4700 天前的主题,其中的信息可能已经有所发展或是发生改变。
    因为是初学,所以想先用一下轻量级的,目前对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   ·   我们的愿景   ·   实用小工具   ·   5414 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 07:05 · PVG 15:05 · LAX 00:05 · JFK 03:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.