Django字节码编译模板加载器

django-compiling-loader的Python项目详细描述


将django模板编译成python字节码的模板加载程序 以提高性能。

https://api.travis-ci.org/mhallin/django-compiling-loader.svg?branch=masterhttps://coveralls.io/repos/mhallin/django-compiling-loader/badge.svg?branch=master&service=github

此包公开compiling_loader.Loader模板 装载机。此加载程序将编译由 将django转换为python字节码。如果无法生成标记,则返回 将被编译,它只计算模板节点。这个 回退方法意味着此加载器与现有的兼容。 装载机,即使你有很多自定义标记。

编译器是模块化的,并围绕Python3.4构建 singledispatch函数,这意味着它可以很容易地扩展到 如果您有昂贵的自定义标记,则支持您自己的标记 从编译中受益。

加载程序本身不做任何缓存;它与 Django的内置缓存加载程序,以避免重新编译。

用法

安装django-compiling-loaderpython包并设置 TEMPLATE_LOADERS设置为以下值:

TEMPLATE_LOADERS=(('django.template.loaders.cached.Loader',[('compiling_loader.Loader',['django.template.loaders.filesystem.Loader','django.template.loaders.app_directories.Loader',]),]),)

如果你有其他的装载机,把它们放在 compiling_loader.Loaderlist以确保生成的 模板被编译。

兼容性

加载程序已经用django 1.7进行了测试,并且需要python 3.4条。在呈现兼容性方面,此项目包含 比较 标准django模板计算和此编译器。到目前为止,没有 发现了不相容性。

表演

test_proj/run_benchmarks.py脚本呈现一个小的继承 基于模板的次数很多,而且 继承和包含的模板几次。下面是一些 比较:

TemplateDefaultCompiledSpeedup
Small0.21 ms0.10 ms2,1x
Large125 ms42 ms3,0x

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在SeleniumWebDriver上同时断言或验证多个必需的错误消息   来自改型回调响应的java Android令牌   使用Play框架或插件进行java Live页面更新   java对象和字符串的相等性和内存digram   java Android在运行异步任务之间交换数据   如何连接到websocket并用Java发送消息   java访问可执行JAR中的文件和文件夹   java应用程序正在强制关闭(Admob)?   强制类型参数在java泛型中实现特定方法   java使用流API比较两个集合中的对象、查找相等对象和更改对象属性的最佳方法是什么   爪哇泰坦工厂。open()配置   java拉git子模块使用maven exec插件,而exec mvn部署   在Android中使用volley库注册java用户