之前我写GAE上自己用的 blog engine 时实现了一个简单的 sidebar 模块,相关细节如下:
1. sidebar 包含的内容称之为 widget
2. 在后台可以设置要显示哪些 widget
3. 每个 widget 都继承自 WidgetBase, 覆盖 customize_form 方法之后就可以实现自定义
4. widget 自定义的数据都存放到 datastore (以 json 格式)
5. 在模板中调用 get_enabled_widgets 方法即可得到包含所有启用的 widget 的列表
6. 调用 widget 的 render 方法即可显示该 widget
刚刚突然想到,这部分代码只要做少量修改就能作为一个独立的 sidebar 模块被重用,不知道这样的模块用处大不大(我会不会是在造轮子)?
代码迟一些再发布,原始的未经修改的代码在这里可以看到
http://code.google.com/p/tublog/source/browse/widgets/__init__.py
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/1294
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.