Django的字节码编译模板加载器
项目描述
一个将Django模板编译成Python字节码以提高性能的模板加载器。
此包公开了 compiling_loader.Loader 模板加载器。此加载器会将Django生成的模板语法树编译成Python字节码。如果一个标签无法生成,将编译一个回退,该回退仅评估模板节点。回退方法意味着即使您有很多自定义标签,此加载器也与现有加载器兼容。
编译器是模块化的,并且围绕Python 3.4的 singledispatch 函数构建,这意味着它可以很容易地扩展以支持您自己的标签,如果您有昂贵的自定义标签且从编译中受益。
加载器本身不进行任何缓存;它与Django内置的缓存加载器一起工作,以避免重新编译。
用法
安装 django-compiling-loader Python包,并将 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.Loader 列表中,以确保生成的模板被编译。
兼容性
此加载器已与Django 1.7进行过测试,并需要Python 3.4。在渲染兼容性方面,该项目包含大量测试用例,比较了标准Django模板评估和此编译器的渲染输出。到目前为止,尚未发现任何不兼容性。
性能
脚本 test_proj/run_benchmarks.py 将一个小型基于继承的模板渲染多次,同时将一个大型同时基于继承和包含的模板渲染几次。以下是一些比较。
模板 |
默认 |
编译 |
加速 |
---|---|---|---|
小 |
0.21 毫秒 |
0.10 毫秒 |
2,1 倍 |
大 |
125 毫秒 |
42 毫秒 |
3,0 倍 |
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源代码分布
django-compiling-loader-0.0.1.tar.gz (10.8 kB 查看哈希值)
构建分布
关闭
哈希值 for django_compiling_loader-0.0.1-py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f55f5a47544edbe39b97e6a1d2681846abdbdb50d60531f2310935e20df948b5 |
|
MD5 | dc894596cabf7b9259a0f9a776a7eea7 |
|
BLAKE2b-256 | 3cbab741f62817af66eca3ca14f01c3a267ec972470e12108507ae54f3c06528 |