Tornado 真的是一个很好的框架 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Livid
61.5D
439.86D
V2EX    Tornado

Tornado 真的是一个很好的框架

  •  
  •   Livid
    PRO
    2011-11-08 02:04:58 +08:00 13304 次点击
    这是一个创建于 5085 天前的主题,其中的信息可能已经有所发展或是发生改变。
    用的人越来越多了,这次在天使湾 Demo Day,遇到至少两个团队用的是 Tornado。
    20 条回复    1970-01-01 08:00:00 +08:00
    tiantian20007
        1
    tiantian20007  
       2011-11-08 02:30:09 +08:00
    哇哦哇哦~其中之一飘过~
    tiantian20007
        2
    tiantian20007  
       2011-11-08 02:35:08 +08:00
    对了那天有个问题忘记请教了,你用tornado+mysql的话,有没有用异步的python-mysql库 or Memcached?
    Livid
        3
    Livid  
    MOD
    OP
    PRO
       2011-11-08 02:39:40 +08:00
    @tiantian20007 有用 Memcached,不过目前用的还不太多。

    MySQL ORM 用的是 Storm。
    lijia18     4
    lijia18  
       2011-11-08 08:49:06 +08:00
    我要挺心爱flask一个,tornado开发速度有点买诶,很多东西都要自己写。
    Livid
        5
    Livid  
    MOD
    OP
    PRO
       2011-11-08 08:50:51 +08:00
    @lijia18 你觉得哪部分需要自己写?
    gonbo
        6
    gonbo  
       2011-11-08 09:29:20 +08:00
    2.1 引入了一个写异步很牛逼的功能 gen.py 大家都应该看一下。
    Livid
        7
    Livid  
    MOD
    OP
    PRO
       2011-11-08 09:36:08 +08:00
    phus
        8
    phus  
       2011-11-08 09:38:42 +08:00
    memcached没有,不过我到写了个tornado-redisclient,参考自tornado-httpclient
    自认为还不错,欢迎review
    https://github.com/phus/tornado-redisclient
    muxi
        9
    muxi  
       2011-11-08 09:40:43 +08:00
    tornado还不能算是一个完整的Web开发框架吧,需要自己添加一些轮子,比如session、缓存,当然如果你用Google App engine 倒是无所谓,直接import google内置的就行
    lijia18
        10
    lijia18  
       2011-11-08 09:47:54 +08:00
    @Livid 以前的版本比较弱,没有gem这个东西,2.1的版本还没有用过,Livid大哥推荐的话还是看一下,现在的项目使用flask写的,感觉很爽,推荐Livid也可以了解一下。
    Livid
        11
    Livid  
    MOD
    OP
    PRO
       2011-11-08 09:49:25 +08:00
    @muxi session 确实需要自己搞定。

    大家有没有推荐的和 Tornado 配合的 session 的开源实现呢?
    SErHo
        12
    SErHo  
       2011-11-08 10:02:50 +08:00
    @Livid 看到过一个session的实现,不过是修改Tornado源代码的,不过可以将它独立出来。
    https://github.com/milancermak/tornado/blob/master/tornado/session.py
    Livid
        13
    Livid  
    MOD
    OP
    PRO
       2011-11-08 10:08:11 +08:00
    @SErHo 多谢!

    刚刚看了一下他的这个实现,和我设想的类似,直接修改 RequestHandler 在 handler 里提供 self.session 这样的支持方式。

    不过他的这个 patch 应该是最好以 diff 方式提供,不然现在 Tornado 已经更新到 2.1.1 了但是他的 codebase 中的其他部分还是 1.2……
    flypen
        14
    flypen  
       2012-01-13 13:00:37 +08:00
    这个session的实现也还不错,很简单:
    http://caines.ca/blog/programming/sessions-in-tornado/
    flypen
        15
    flypen  
       2012-01-13 13:01:37 +08:00
    BUG报告:刚才我仅点了一下回复,结果却出来两条一模一样的回复内容。Chrome的问题?v2ex会进行类似的重复回复检测吗?
    caomu
        16
    caomu  
       2012-01-13 13:25:53 +08:00 via Android
    @flypen 这里没有重复回复检测,所以你能经常看到重复回复。。。这个问题也说过很多次了,等下回lv大大行动力又level up的时候提一下可能就解决了。。。
    dndx
        17
    dndx  
       2012-01-13 14:39:28 +08:00
    gen没办法把同步的调用变成异步,除非使用原生异步的库,gen说到底只是callback=XXXX的简写形式,最终效果是一样的。
    异步调用还是Gevent最靠谱,Gevent + Tornado是无敌的。
    laiwei
        18
    laiwei  
       2012-01-13 14:54:14 +08:00
    我给flask投个+1票
    gonbo
        19
    gonbo  
       2012-01-13 15:26:12 +08:00
    @dndx 这个只是让大家写异步更方便。
    yoyicue
        20
    yoyicue  
       2012-01-13 15:38:55 +08:00
    @laiwei tornado 和 flask 各有所长 我也更喜欢 flask zz
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     872 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 21:46 PVG 05:46 LAX 14:46 JFK 17:46
    Do have faith in what you're doing.
    ubao 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