Micolog新功能:从Zip文件中加载主题模板
十二月 9th, 2009
这两天,花了点时间,准备对Micolog进行一些修改。
GAE存在文件数目的限制,当我们安装了太多主题的时候,会占用大量的文件资源。所以如果能从Zip文件中加载主题模板,就能够大大的减少文件数量,就能够防止因为文件太多而导致的应用受限。
好在Google App Engine sdk中包含了Zipfile模板,我们可以使用这个模块来支持zip文件的解压缩,从而实现我们要求的功能。
刚开始以为很容易就能实现,结果走了不少弯路。
以下是最终的实现思路:
- 修改theme_file.py中的GetFile类,在Get方法中判断theme文件夹是否存在,如果不存在,则判断相应的.zip文件是否存在,如果存在则调用 ZipHandler进行处理。
其中zipHandler包含在google.appengine.ext.zipserve中
经过这样的处理,就可以正确的处理/theme/style.css类似这样的请求了 - 修改model.py中的theme类,增加theme是否zip文件的判断
- 查看了django.templates.loader模块,发现在find_template_source函数中提供了增加template_source_loaders的接口,所以只要实现自己的template_source_loader就可以了,仿照filesystem.py,我实现了一个zip_loader.py模块来支持从zip文件中加载模板。
- 修改settings.py文件,增加
TEMPLATE_LOADERS=('django.template.loaders.filesystem.load_template_source',
'ziploader.zip_loader.load_template_source') - 重写templates.py模板,增加了micolog_templates.py,在这个文件里根据theme是否zip文件,设置TEMPLATE_DIRS的值
好久没写技术文章,发现不会写了!大家直接查看源文件吧
就是主题太少了
建议给你个主题 开发文档 或者教程
方面开发主题
这个功能好
呵呵,支持一下博主 ~
请问怎么删除已经上传到GAE上的文件?
等一会就更新,GAE的静态文件数量限制是多少?