V2EX 重构之模板解析 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
c
V2EX    Project Babel

V2EX 重构之模板解析

  •  
  •   c 2010-08-02 19:13:10 +08:00 7202 次点击
    这是一个创建于 5549 天前的主题,其中的信息可能已经有所发展或是发生改变。
    V2EX支持Desktop和Mobile,如何可以很方便的自动选择需要的模板那?跟我一起来吧。

    先创建一个PublicHandler的父类,详细代码见:

    现在我们写个TestHandler

    class TestHandler(PublicHandler):

    def get(self):
    self.render("test.html")

    在tpl/mobile 和tpl/desktop下面分别建立模板test.html。大功告成

    切换Firefox的User Agent来看显示的效果吧。

    这样代码会减少很多,接下来我们会不断完善PublicHandler,减少总的代码量。
    15 条回复    1970-01-01 08:00:00 +08:00
    c
        1
    c  
    OP
       2010-08-02 19:13:53 +08:00
    晕,伟大的空格被去掉了。还好代码比较简单,不影响查看吧。
    c
        2
    c  
    OP
       2010-08-02 19:16:04 +08:00
    额,没人理我,写的不好哇...
    Livid
        3
    Livid  
    MOD
    PRO
       2010-08-02 19:45:18 +08:00
    期待在你的 fork 中看到一个你觉得最好的 PublicHandler 实现,同时考虑到 template_values 的代码节约。

    其实大家可以在某个目录下来写自己认为最好的 Generic Handler,然后 main.py 之类的代码去继承这些 handler 的实现就很棒了。
    c
        4
    c  
    OP
       2010-08-02 19:52:18 +08:00
    @Livid 额,你把查询都写在逻辑里面了.好难搞啊...这个在重构的时候最好重构到db.Model里 :) 毕竟很多时候,有很多查询是重复的。
    Livid
        5
    Livid  
    MOD
    PRO
       2010-08-02 19:53:24 +08:00
    @c

    嗯,有一部分查询我放到了 v2ex.babel.da 中,da = Data Access,这个是未来的方向。
    c
        6
    c  
    OP
       2010-08-02 19:53:58 +08:00
    @Livid 现在在写is_login 的decorator
    Livid
        7
    Livid &nsp;
    MOD
    PRO
       2010-08-02 19:54:42 +08:00
    @c

    ^_^

    登录之后跳转到登录前页面也是我一直想做但是还没做的。
    c
        8
    c  
    OP
       2010-08-02 19:57:47 +08:00
    @Livid 习惯了Django,喜欢直接在Model里写各种查询,这样在导入的时候可以少导入几个方法,只用导入类即可。而且这样看代码的时候,可以直接知道这个Model有哪些查询 :) 不过缺点就是,导致Model里面有很多代码.
    airwolf
        9
    airwolf  
       2010-08-02 19:57:48 +08:00 via iPod
    看到这样的高效率,忍不住进来感叹一下 :)
    c
        10
    c  
    OP
       2010-08-02 19:59:26 +08:00
    @Livid 写个简单的文件类表吧,我怕我写的和你写的不一样 :)
    Livid
        11
    Livid  
    MOD
    PRO
       2010-08-02 20:02:31 +08:00
    @c

    文件类表是指?

    -_-
    c
        12
    c  
    OP
       2010-08-02 20:08:25 +08:00
    @Livid 就是每个文件是干啥的,handler最好放根目录,要不用来找模板的是会比较麻烦一点。
    Livid
        13
    Livid  
    MOD
    PRO
       2010-08-02 20:09:08 +08:00
    @c

    OK

    明白。

    今天晚上写。
    dimlau
        14
    dimlau  
       2010-08-02 20:46:10 +08:00
    貌似一下子「火花」多了很多啊,不知道这样,2.4是更近了还是更远啦。
    总之,v2ex强大得更迅速了,好!
    bjhyyc
        15
    bjhyyc  
       2011-10-22 14:22:35 +08:00
    @Livid 可以在你这付费定制pb模板吗??
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1001 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 23:22 PVG 07:22 LAX 16:22 JFK 19:22
    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