大家谈谈自己所用的 py 框架感想 - 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
1989922yan
V2EX    Python

大家谈谈自己所用的 py 框架感想

  •  
  •   1989922yan 2014-12-05 08:16:12 +08:00 19541 次点击
    这是一个创建于 4013 天前的主题,其中的信息可能已经有所发展或是发生改变。
    框架列表: http://codecondo.com/14-minimal-web-frameworks-for-python/

    先上班,稍后补充自己的。
    54 条回复    2014-12-23 11:04:41 +08:00
    crazyxin1988
        1
    crazyxin1988  
       2014-12-05 08:48:48 +08:00
    刚入python,是看了django 根据官方文档写了一下小例子
    后来发现了flask,开始学习,然后写小东西,大爱,用flask写了自己的blog
    继续深爱中
    guoqiao
        2
    guoqiao  
       2014-12-05 09:16:31 +08:00
    flask适合初学上手以及喜欢 diy 的人.
    Django 适合喜欢 all in one且不爱折腾的人.
    clino
        3
    clino  
       2014-12-05 09:16:39 +08:00
    uliweb: 可重用性,可配置性和可替换性
        4
    maikcn  
       2014-12-05 09:20:22 +08:00
    也是刚转入 Python
    接手的项目是用 Django 写的,admin 简直是企业站的好帮手
    目前用 Flask 写一些小东西,接口调用和数据库查询之类的,上手容易插件也丰富
    前几天简单看了下 Pyramid,感觉有点 Java 框架的味道...
    hustlzp
        5
    hustlzp  
       2014-12-05 09:30:17 +08:00
    Flask党。

    需要多折腾,慢慢积累出适合自己开发的工程结构。
    isaced
        6
    isaced  
       2014-12-05 09:37:11 +08:00
    用了会 Django,喜欢这种开箱即用的感觉,不过学习曲线稍陡,熟悉了一定很给力。
    EPr2hh6LADQWqRVH
        7
    EPr2hh6LADQWqRVH  
       2014-12-05 09:45:15 +08:00
    Bottle.py
    有许多编码相关的问题,还有同时兼容py2和py3造成的问题
    不过好处是代码简洁易懂,可控性高,有啥问题能自己搞定
    yakczh
        8
    yakczh  
       2014-12-05 09:51:35 +08:00
    用torando写过一个小后台,觉得一个请求一个类,这种方式很简单明了,而且权限处理也方便,如果在原来的操作上要增加一个权限,就继承相应的类就可以了
    happywowwow
        9
    happywowwow  
       2014-12-05 09:51:38 +08:00
    在学django中
    有啥不会就看文档 看源码
    通用模板的源码写的很清晰 插件啥的还没深究
    模板系统对于我这前端渣渣分不清好坏(求指教)
    用了taggit django-bootstrap-markdown这两个 插件
    搭自己的博客ing
    xiaket
        10
    xiaket  
       2014-12-05 09:55:04 +08:00
    没有人用bottle.py咩? 用起来很舒服啊, 特别轻, 上手特别快.
    lincanbin
        11
    lincanbin  
       2014-12-05 10:07:27 +08:00
    bottle 简单易拓展
    tornado 强大
    1989922yan
        12
    1989922yan  
    OP
       2014-12-05 10:31:35 +08:00
    @crazyxin1988
    @guoqiao
    @hustlzp
    @xiaket
    @lincanbin

    hi,各位都是用 Flask 和 bottle 的,我有用这两个做过简单的事情。
    Flask 底层使用了工具库 werkzeug,我感兴趣这个
    bottle 是 全python标准库搞定,我感兴趣这个

    两个问题:
    1. Flask 和 bottle 版本号没有到 1,各位可有担心过嘛?
    2. 希望知道,是否有在生产环境的 案例?
    crazyxin1988
        13
    crazyxin1988  
       2014-12-05 10:34:55 +08:00   1
    不用担心
    精品出现 都需要时间 你可以直接发邮件问问Flask作者啊 为啥还不出1.0 还在酝酿什么呢
    1989922yan
        14
    1989922yan  
    OP
       2014-12-05 10:34:59 +08:00
    @guoqiao
    @isaced

    django,的确好用,也可用于生产环境,社区好,文档好
    值得入手
    django 的 ORM 绝对是亮点,涉及元编程

    问题:
    1. django 如果自己提供 django插件,是否难度很大?
    lincanbin
        15
    lincanbin  
       2014-12-05 10:35:35 +08:00   1
    @1989922yan 有生产环境实例,但是不是个人项目不便公开,跑了大半年没发现有什么问题
    1989922yan
        16
    1989922yan  
    OP
       2014-12-05 10:36:05 +08:00
    @clino

    兄弟说的这个最感兴趣,新见框架,我去试试
    如果兄弟能详细说说,就更感谢了
    1989922yan
        17
    1989922yan  
    OP
       2014-12-05 10:37:43 +08:00
    @lincanbin
    @yakczh

    tornado 高性能,后面有大佬做靠背,的确爽
    也有tornado被高估的成分在里面
    1989922yan
        18
    1989922yan  
    OP
       2014-12-05 10:48:05 +08:00
    clino
        19
    clino  
       2014-12-05 10:54:31 +08:00   1
    @1989922yan uliweb其实不新,比flask还要早,是个很棒的框架,我一直用,感觉"可重用性,可配置性和可替换性"这几方面确实做得很棒

    文档: http://limodou.github.io/uliweb-doc/zh_CN/index.html
    代码: https://github.com/limodou/uliweb
    邮件列表: http://groups.google.com/group/uliweb
    论坛兼demo站点: http://uliweb.clkg.org
    QQ讨论组: 162487035

    有问题可以来邮件列表问,我一般都是去邮件列表的,去QQ群也可以
    CoX
        20
    CoX  
       2014-12-05 11:33:57 +08:00
    用tornado做过小项目
    kutata
        21
    kutata  
       2014-12-05 12:07:55 +08:00
    virusdefender
        22
    virusdefender  
       2014-12-05 13:34:32 +08:00
    喜欢django 写后台不错 自带的模板和form很少用~
    cbsw
        23
    cbsw  
       2014-12-05 13:34:36 +08:00   5
    Django 的 MVC(自称MTV) 拆分的很独立,例如模板没有太多的 Python 复杂的语法,可以方便前端人员,另外所谓的 Battery-Included ,里面很多实际项目中用到的功能,本身这些 battery 质量也比较高,大多数时候不需要再去寻找第三方库,很适合大项目,而且最近 1.7 已经自带 Migration 功能了,我觉得对于5人以上的团队用Django非常合适。但缺点也正是大而全,所以为了做到这些,做了不少让步,整体也比较臃肿,要完全熟悉需要花较多时间(文档1000多页)

    Flask 虽然还没到1.0,但质量已经非常可靠了,看V站上招聘贴有不少创业公司在用,所以生产环境完全没问题。相对于 Django 而言,Fask 就显得非常灵活了,各部分的设计很干净简洁,很符合 Python 哲学。因为本身是微框架,所以上手很容易,文档也写得非常清晰(官网看起来相当清爽啊)。因为很灵活,不自带各种 battery,所以第三方的扩展非常丰富,但也造成了库的质量参差不齐,选择时需要花一定的时间评估,一旦入了某个扩展的坑,出问题了请随时做好撸起(袖)管子自己开干的觉悟。对于小团队来说,Flask 非常合适,招几个精通 Flask 的猿,比如我(开玩笑的,算不上精通),或者只是有一定的了解就可以,因为培养起来也很快,然后集体开撸(微框架很容易全方位的掌握),也不用把前端后端分得清清楚楚。一直听说 pocoo 小组写得代码非常棒,想认真地读读,可惜一直没有时间静下来好好研究 [Sigh]

    Bottle 又是一个瓶子(Flask是烧瓶,话说以前一直以为是朝天椒的),单文件的微框架,比 Flask 更适合用来玩,但据我所知还没有生产项目是用 Bottle 做的,都是个人业余项目。因为单文件所以项目连同 bottle.py 一起随便往服务器上一扔,部署非常方便。作为框架最基本的东西也都有,有啥问题直接在 bottle.py 里翻源码就行,对于学习 Web 开发来说非常合适,可以从中了解那个经典的洋葱是怎么被一层层剥开的

    至于其它框架,由于个人精力有限,没接触过
    1989922yan
        24
    1989922yan  
    OP
       2014-12-05 13:56:00 +08:00
    @clino

    的确是,出现时间更早,我觉得还是大家的活跃度不够
    1989922yan
        25
    1989922yan  
    OP
       2014-12-05 14:02:37 +08:00
    @cbsw

    牛B。已经非常详细了。

    django对数据库的1.7新添加也是一个亮点,个人感觉,django已经能对比 代码与数据库表 结构之间差别,然后update了。

    bottle吸引我的原因,的确是他的 一个文件。完全是牛逼的学习材料。

    flask 的话,简洁好用。其实我想说,如果我web.py的作者没有被迫害离开,绝对web.py了。
    zhouquanbest
        26
    zhouquanbest  
       2014-12-05 14:42:03 +08:00   1
    以前用Tornado写自己的小项目 Flask和Quixote写正式的
    现在用Tornado写正式 感觉就是你必须得为异步方式提前做性能优化

    比如SQL部分 想用ORM 就得解决异步问题 需要用Celery来分离之
    1989922yan
        27
    1989922yan  
    OP
       2014-12-05 15:32:35 +08:00
    @virusdefender

    同样。
    我也只用了django本身的 admin。
    这里涉及 元编程。可以入。
    zenliver
        28
    zenliver  
       2014-12-05 15:51:25 +08:00
    感想, 就是不好用
    n37r06u3
        29
    n37r06u3  
       2014-12-05 15:56:02 +08:00
    一直用django 现在写电商
    vaneoooo     30
    vaneoooo  
       2014-12-05 15:58:28 +08:00
    Django跟到1.3版本弃之

    转Uliweb
    jjx
        31
    jjx  
       2014-12-05 16:01:26 +08:00
    @cbsw 我们就在生产环境的webserver用bottle+gevent, 不过主要提供restful接口
    clino
        32
    clino  
       2014-12-05 16:26:15 +08:00
    @vaneoooo 握手
    其实我没怎么用过其他框架, 你能不能比较一下 uliweb 和 django 的优缺点?
    likebeta
        33
    likebeta  
       2014-12-05 18:49:12 +08:00
    为嘛没有twisted的
    Ricardoli
        34
    Ricardoli  
       2014-12-05 21:26:45 +08:00
    @likebeta 比起前面提到的那几个,感觉文档和资料不多。。。
    tftk
        35
    tftk  
       2014-12-05 22:03:56 +08:00
    用 django,会用,能写,但是学不会。
    mathgl
        36
    mathgl  
       2014-12-05 22:47:45 +08:00   1
    一直在用 cyclone, based on twisted.
    evlos
        37
    evlos  
       2014-12-05 22:49:22 +08:00 via iPhone
    Tornado 党表示写顺手了所以默认都用它,但是 Flask 也很不错哒
    wenbinwu
        38
    wenbinwu  
       2014-12-05 22:50:41 +08:00
    公司有自己的framework,之前用django
    现在学框架就直接看代码,比文档来的快多了
    crossmaya
        39
    crossmaya  
       2014-12-05 23:29:59 +08:00   1
    我是一开始使用tornado,后来开始flask +gevent ,一般项目我都会这么使用,没有特殊需求的话,django一直没看过,最近也打算学习一下
    janxin
        40
    janxin  
       2014-12-06 09:48:55 +08:00
    一直用flask,感觉非常不错,但是flask的作者貌似开坑去玩Rust了,不知道Flask的后续更新会如何。不过现在也足够用了
    ericFork
        41
    ericFork  
       2014-12-07 01:22:04 +08:00
    大的用 Django
    小的用 bottle
    1989922yan
        42
    1989922yan  
    OP
       2014-12-09 11:47:10 +08:00
    @likebeta 同样觉得奇怪。。。
    为啥没有twisted?
    1989922yan
        43
    1989922yan  
    OP
       2014-12-09 11:48:07 +08:00
    @mathgl
    哦哦,第一个听的框架,喵喵去
    1989922yan
        44
    1989922yan  
    OP
       2014-12-09 11:49:27 +08:00
    @janxin 还是觉得版本号太低,真的就恶心了。。。
    daiv
        46
    daiv  
       2014-12-13 22:03:26 +08:00
    @pqrocky 我也还在用 web.py ,考虑要不要转别的呀
    daiv
        47
    daiv  
       2014-12-13 22:13:29 +08:00
    @clino 觉得uliweb的资料有点小乱 google 、github、uliweb.clkg.org 都有。
    希望能够集合一个地方。(参考ssdb)
    我有准备开始尝试 uliweb。
    谢谢
    clino
        48
    clino  
       2014-12-13 22:33:44 +08:00
    @daiv uliweb.clkg.org 可以看作是一个demo站点,那上面的教程是limodou和hejiasheng搞过几次uliweb培训留下的,我觉得文档看 http://limodou.github.io/uliweb-doc/zh_CN/index.html 就可以了,之前的几个培训教程这个文档里也有整理
    daiv
        49
    daiv  
       2014-12-14 20:33:16 +08:00
    @clino 一直以为你是 limodou
    clino
        50
    clino  
       2014-12-14 22:00:33 +08:00
    @daiv 我只是一个 uliweb 的老用户.搞一个web框架是很不容易的,我木有那个技术实力,从经常刷 v2ex 上看我也木有那个专注力...
    limodou看起来有 v2ex 帐号的, 不过从注册时间上看,可能是我当时在 http://uliweb.clkg.org/forum/1/31 上提过 v2ex 以后注册的
    daiv
        51
    daiv  
       2014-12-14 22:48:02 +08:00
    @clino 我一直用 web.py ,小东西。
    考虑要不要尝试 uliweb 呢
    clino
        52
    clino  
       2014-12-14 22:57:50 +08:00
    @daiv 可以先试试看
    有问题可以在google groups 或者 QQ 群里问 limodou ,一般来说都能比较快的得到解答
    我之前反馈的一些bug或者建议, 一般来说也是比较快就被处理了
    tiant167
        53
    tiant167  
       2014-12-15 14:02:44 +08:00
    一直再用django,admin控制台很方便,对于一些有后台功能的系统来说省了一部分工作。平时也用tornado,最近想看下flask呢
    pqrocky
        54
    pqrocky  
       2014-12-23 11:04:41 +08:00
    @daiv 在考虑试试django
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1033 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 23:35 PVG 07:35 LAX 15:35 JFK 18:35
    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