V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
c
V2EX  ›  Project Babel

V2EX 重构之模板解析

  •  
  •   c · 2010-08-02 19:13:10 +08:00 · 6847 次点击
    这是一个创建于 5205 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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
       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
       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  
    MOD
       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
       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
       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   ·   实用小工具   ·   1077 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 19:28 · PVG 03:28 · LAX 12:28 · JFK 15:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.