V2EX 重构之模板解析

2010-08-02 19:13:10 +08:00
 c
V2EX支持Desktop和Mobile,如何可以很方便的自动选择需要的模板那?跟我一起来吧。

先创建一个PublicHandler的父类,详细代码见: http://gist.github.com/504483

现在我们写个TestHandler

class TestHandler(PublicHandler):

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

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

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

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

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

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

^_^

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

文件类表是指?

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

OK

明白。

今天晚上写。
dimlau
2010-08-02 20:46:10 +08:00
貌似一下子「火花」多了很多啊,不知道这样,2.4是更近了还是更远啦。
总之,v2ex强大得更迅速了,好!
bjhyyc
2011-10-22 14:22:35 +08:00
@Livid 可以在你这付费定制pb模板吗??

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1242

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX