python-在Django的模板加载器中预处理SHPAML?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-在Django的模板加载器中预处理SHPAML?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1012字,纯文字阅读大概需要2分钟。
内容图文
![python-在Django的模板加载器中预处理SHPAML?](/upload/InfoBanner/zyjiaocheng/671/7d54eec2ea4b42b1956cec1c58b308dd.jpg)
如果Django的模板加载器认为HTML已过时,是否可以通过Django通过SHPAML运行所有加载的模板(即直接或通过扩展/包含)?
我知道如何在整个目录上递归调用SHPAML,但我希望能够按需运行它,因此不必记住每次更改SHPAML源时都要同步HTML.
我想从manage.py调用SHPAML也可以工作(至少对于测试服务器而言),但是能够侵入Django的模板引擎并使其运行通过预处理器加载的每个文件会更好.
解决方法:
我怀疑您可以通过从django.template.loaders.app_directories.Loader继承(或使用的任何加载程序)并覆盖load_template_source方法来实现所需的目标,例如:
from django.template.loaders.app_directories import Loader
from shpaml import convert_text
class SHPAMLLoader(Loader):
def load_template_source(self, *args, **kwargs):
shpaml_source = super(SHPAMLLoader, self).load_template_source(*args, **kwargs)
html = convert_text(shpaml_source)
return html
然后将您的加载程序放在settings.py中的TEMPLATE_LOADERS元组的开头.当然,每次加载模板时,您都会使用SHPAML进行HTML跳舞,因此您可能会看到一些开销.即将到来的Django 1.2具有模板缓存功能,可以帮助减轻这些开销.
免责声明:抱歉,此代码未经测试.
内容总结
以上是互联网集市为您收集整理的python-在Django的模板加载器中预处理SHPAML?全部内容,希望文章能够帮你解决python-在Django的模板加载器中预处理SHPAML?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。