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没有主体的循环做什么?   java xtext项目中的默认内容辅助功能在哪里   通过相似(不相同)键的java分组映射   java Dagger 2 reinit singleton   检测图像中的矩形会产生不想要的结果(opencv,java)   Java方法调用与使用变量的性能比较   尝试使用hibernate连接到mysql时,java连接被拒绝   允许端口的java IP地址正则表达式   通过Socket实现java Android到PC的数据交换   java使用maven向类路径添加额外的配置文件夹   java我似乎无法从RMI存根获得socket工厂。为什么会这样?   java使用hibernate向数据库添加数据   java驱动程序对于Chromedriver不可执行   java编译错误。mysql。jdbc。驱动程序无法解析为变量