正在加载...

Micolog新功能:从Zip文件中加载主题模板

December 9th, 2009

这两天,花了点时间,准备对Micolog进行一些修改。

GAE存在文件数目的限制,当我们安装了太多主题的时候,会占用大量的文件资源。所以如果能从Zip文件中加载主题模板,就能够大大的减少文件数量,就能够防止因为文件太多而导致的应用受限。

好在Google App Engine sdk中包含了Zipfile模板,我们可以使用这个模块来支持zip文件的解压缩,从而实现我们要求的功能。

刚开始以为很容易就能实现,结果走了不少弯路。

以下是最终的实现思路:

  1. 修改theme_file.py中的GetFile类,在Get方法中判断theme文件夹是否存在,如果不存在,则判断相应的.zip文件是否存在,如果存在则调用 ZipHandler进行处理。
    其中zipHandler包含在google.appengine.ext.zipserve中
    经过这样的处理,就可以正确的处理/theme/style.css类似这样的请求了
  2. 修改model.py中的theme类,增加theme是否zip文件的判断
  3. 查看了django.templates.loader模块,发现在find_template_source函数中提供了增加template_source_loaders的接口,所以只要实现自己的template_source_loader就可以了,仿照filesystem.py,我实现了一个zip_loader.py模块来支持从zip文件中加载模板。
  4. 修改settings.py文件,增加 
    TEMPLATE_LOADERS=('django.template.loaders.filesystem.load_template_source',
                        'ziploader.zip_loader.load_template_source')
  5. 重写templates.py模板,增加了micolog_templates.py,在这个文件里根据theme是否zip文件,设置TEMPLATE_DIRS的值

好久没写技术文章,发现不会写了!大家直接查看源文件

相关阅读:



我要留言


  • 热门文章

  • 最近评论

    • 吃饭: dxd...
    • 吃饭: 的第...
    • life: 呼唤Xuming老大啊! Datasto...
    • 洋洋: 放弃Micolog用wp了。。主要是ga...
    • hqnyan: 坚持一定可以的。。...
  • 最近文章

  • 分类杂谈

  • 标签

    Appdrop Google Google App Engine IT Micolog Python SCapture ajax apple appspot best gae bug buzz db gae gfw google google-app-engine-toturial hostmonster html5 linux live micolog picasa plugin python script skpye skydriver svn system taobao tutorial ubuntu vmware vs2008 windows live writer 乐一个 地震 女装 王石 现代寓言故事 生活 艺术 范跑跑 输入法 郭跳跳
  • 归档

  • 友情链接