Jinja2模板绑定Pyramid Web框架
项目描述
Jinja2 绑定库,用于 Pyramid
这是为 Jinja2 模板系统 和 Pyramid 网络框架 定制的绑定库。
请参阅 https://docs.pylonsproject.org/projects/pyramid-jinja2/en/latest/ 以获取文档或源代码分发中的 docs 子目录中的 index.rst。
2.10.1 (2023-02-07)
将 "master" git 分支重命名为 "main"
添加对 Python 3.11 和 3.12 的支持。
替换对私有 Pyramid API 的使用。
2.10 (2022-03-27)
添加 jinja2.i18n_extension 配置设置。请参阅 https://github.com/Pylons/pyramid_jinja2/pull/165
2.9.2 (2022-03-19)
支持 Jinja2 >= 3.0。
仅在 Jinja2 >= 3.0 上导入 jinja2.pass_context,否则回退到 jinja2.contextfilter。请参阅 https://github.com/Pylons/pyramid_jinja2/pull/164
2.9.1 (2022-03-12)
此版本已被撤回,不再可用。
修复包元数据。与 2.9 版本相比没有变化。
2.9 (2022-03-12)
此版本已被撤回,不再可用。
停止支持 Python 3.6。
添加对 Python 3.9 和 3.10 的支持。
重构项目结构以使 wheel 分发更小。
将代码库 Blackify。
优先使用较新的 @jinja2.pass_context,而不是已弃用的 @jinja2.contextfilter。请参阅 https://github.com/Pylons/pyramid_jinja2/pull/159
2.8 (2019-01-25)
停止支持 Python 3.3。
添加对 Python 3.6 和 3.7 的支持。
支持注入函数 gettext 中的 mapping 参数。请参阅 https://github.com/Pylons/pyramid_jinja2/pull/143
2.7 (2016-11-15)
停止支持 Python 2.6 和 3.2。
添加对 Python 3.5 的支持。
#123: 在文档和脚手架中将测试和安装切换到 pytest 和 pip。nose 和 coverage 仍用于核心 pyramid_jinja2 包 [stevepiercy]。
优先使用 resource_url,而不是已弃用的 model_url。Pyramid 已经更改了其词汇,因此让我们反映这些更改。[Mikko Ohtamaa]
支持 jinja2.i18n.gettext 设置的 gettext 包装器的点路径。[mmerickel]
2.6.2 (2016-01-23)
正式停止支持 Python 3.2,在 Python 3.5 和 pypy3 下进行测试 [Domen Kozar]
2.6.1 (2016-01-20)
在 wheel 文件中不包括 .pyc [Domen Kozar]
2.6 (2016-01-20)
#116: 将脚手架更新为与 Pyramid 的默认脚手架一致 [stevepiercy]
2.5 (2015-04-16)
#106: 允许指定自定义的 pyramid_jinja.i18n.GetTextWrapper [dstufft]
2.4 (2015-03-27)
#105: 支持 jinja2.finalize 配置设置。[dstufft]
#94: 修复在 Windows 上加载具有相对名称的模板的问题 [zart]
支持 Python 3.4 [mmerickel]
改进脚手架 [marioidival]
#98: 尽可能避免使用 get_current_request [housleyjk]
#99: 添加 resource_path 过滤器 [javex]
2.3.3 (2014-07-02)
#91: 修复尝试包含与已加载的父级具有相同名称的模板时的递归错误。 [mmerickel]
2.3.2 (2014-06-13)
修复 2.3.1 brownbag 发布版。它包含一些意外的更改,现已解决。将覆盖率提升至 100%。
2.3.1 (2014-06-13)
改进模板相对搜索路径逻辑,以便在由模板构建的包含链中搜索更多可能性。当包含链长于仅包含另一个模板的单个模板时,该逻辑出现了问题。
2.3 (2014-05-30)
即使使用pyramid_jinja2.renderer_factory,也需要包含pyramid_jinja2。现在它是对默认渲染器的薄包装,可以用来与另一种文件扩展名共享相同的设置。[mmerickel]
不兼容的更改
pyramid_jinja2 必须 被包含到Configurator中,才能使用pyramid_jinja2.renderer_factory,否则您可能会看到异常。
ValueError: As of pyramid_jinja2 2.3, the use of the "pyramid_jinja2.renderer_factory" requires that pyramid_jinja2 be configured via config.include("pyramid_jinja2") or the equivalent "pyramid.includes" setting.
修复方法是包含pyramid_jinja2。
config.include("pyramid_jinja2")
2.2 (2014-05-30)
#88:正式化模板加载顺序,并允许所有查找回退到搜索路径。现在,模板总是在其父模板的相对路径中搜索。如果没有找到,查找将回退到搜索路径。[mmerickel]
为config.add_jinja2_search_path添加prepend选项,以允许将路径添加到搜索路径的开头,如果路径应该覆盖先前定义的路径。[mmerickel]
2.1 (2014-05-16)
2.0系列开始添加调用config.add_jinja2_renderer的包到模板搜索路径。现在正在移除它,以支持显式的搜索路径,希望这不会影响很多人,因为这个功能只可用了一周左右。唯一的自动搜索路径是包含pyramid_jinja2时创建的默认.jinja2渲染器所添加的搜索路径。[mmerickel]
调整config.include("pyramid_jinja2")以在应用程序底部的默认搜索路径之前添加jinja2.directories中的任何包。[mmerickel]
2.0.2 (2014-05-06)
在从基本模板继承时,始终考虑子模板的路径。因此,当执行render("templates/foo.jinja2")且foo.jinja2有{% extends "base.jinja2" %}时,模板将在搜索路径上按"templates/base.jinja2"搜索。之前在查找基本模板时忽略了子模板的路径,导致当子模板相对于调用者找到而不是在搜索路径上找到时,出现了一些非常微妙且无法恢复的查找错误。[mmerickel]
此版本恢复了2.x中意外删除的1.x系列的默认搜索路径行为。默认情况下将项目的根包添加到搜索路径。[mmerickel]
2.0.1 (2014-04-23)
#86:修复了由扩展相对于自身模板的新支持引起的回归。使用{% extends "some_asset:spec.jinja2" %}不再工作,现已修复。[mmerickel]
2.0 (2014-04-21)
声明支持Python 3.4。[mmerickel]
#75:通过允许模板从相对于自身的模板继承,而不是强迫父模板位于搜索路径上,解决了相对模板加载缺失的部分。[mmerickel]
#73:添加了一个新的config.add_jinja2_renderer API,可以创建和覆盖多个Jinja2渲染器,每个渲染器可能使用不同的设置和扩展加载。
其他API现在根据渲染器扩展进行键控,因为每个扩展可能具有不同的设置。因此,config.add_jinja2_search_path、config.add_jinja2_extension和config.get_jinja2_environment接受一个name参数,默认为.jinja2。
弃用了旧的 pyramid_jinja2.renderer_factory 机制,用于添加具有不同扩展名的渲染器。
渲染器的配置已更新,以遵循 Pyramid 的标准冲突检测机制。这意味着如果两个模块都尝试为 .jinja2 扩展名添加渲染器,可能会引发冲突,或者调用栈中最靠近 Configurator 的调用所做的修改将获胜。此行为可以通过在适当的时间调用 config.commit 来强制配置立即生效。因此,配置被推迟到提交时间,这意味着现在 config.get_jinja2_environment 可能会返回 None,因为更改尚未提交。[mmerickel]
不兼容的更改
Jinja2 Environment 的创建和配置现在被推迟到 Pyramid Configurator 的提交类型。这意味着 config.get_jinja2_environment 可能会返回 None。为了解决这个问题,在尝试获取环境之前,请调用 config.commit()。
1.10 (2014-01-11)
#77:改变 jinja2.bytecode_caching 设置的语义。新的默认值是 false(没有字节码缓存)- 必须显式将 bytecode_caching 设置为 true 以启用文件系统字节码缓存。此外,不再注册 atexit 回调以清理缓存(因为这似乎破坏了字节码缓存的大部分用途。)最后,可以通过将 jinja2.bytecode_caching 直接设置为 jinja2.BytecodeCache 实例来配置更复杂的字节码缓存。(这不能在 paste .ini 文件中完成,必须以编程方式完成。)[dairiki]
防止使用 python setup.py bdist_wheel 时出错 [msabramo]
1.9 (2013-11-08)
修复 scaffolds/__init__.py 中 Jinja2ProjectTemplate 的缩进级别 [Bruno Binet]
移除对已废弃的 Pyramid 1.5 中的 pyramid.interfaces.ITemplateRenderer 的不必要的依赖。[mmerickel]
#68:添加 model_path_filter、route_path_filter 和 static_path_filter 过滤器 [Remco]
#74:修复了使用字节码缓存时 jinja2 引擎将路由转换为 const 的问题 [Remco]
1.8 (2013-10-03)
#70:除非在 py3.2 下运行,否则不要为 py3.2 兼容性锁定 [dairiki]
1.7 (2013-08-07)
#56:python3.3:更改日志中的非 ASCII 字符会导致 pip 安装失败 [Domen Kozar]
#57:移除无用的警告:DeprecationWarning: reload_templates 设置已弃用,请使用 pyramid.reload_templates 代替。 [Marc Abramowitz]
1.6 (2013-01-23)
将 jinja2.i18n.domain 的默认值设置为 Pyramid 应用程序的包名称。[Domen Kozar]
添加 jinja2.globals 设置,以将全局对象添加到模板上下文中 [Eugene Fominykh]
添加 jinja2.newstyle 设置以启用新的 gettext 调用 [Thomas Schussler]
1.5 (2012-11-24)
添加 pyramid.reload_templates 以设置 jinja2.auto_reload 而不是使用 reload_templates。弃用后者。[Domen Kozar]
在 atexit 时清除字节码缓存 [Domen Kozar]
添加对更多 Jinja2 选项的支持。请注意,对 jinja2.autoescape 的支持仅限于布尔值。
jinja2.block_start_string
jinja2.block_end_string
jinja2.variable_start_string
jinja2.variable_end_string
jinja2.comment_start_string
jinja2.comment_end_string
jinja2.line_statement_prefix
jinja2.line_comment_prefix
jinja2.trim_blocks
jinja2.newline_sequence
jinja2.optimized
jinja2.cache_size
jinja2.autoescape
[Michael Ryabushkin]
1.4.2 (2012-10-17)
添加 jinja2.undefined 设置以更改对未定义类型的处理。 [Robert Buchholz]
移除冗余的解码错误处理 [Domen Kozar]
默认配置字节码缓存。引入 jinja2.bytecode_caching 和 jinja2.bytecode_caching_directory 设置。[Domen Kozar]
允许在 jinja2.tests 设置中添加自定义 Jinja2 测试。 [Sebastian Kalinowski]
1.4.1 (2012-09-12)
修复 brown-bag 发布 [Domen Kozar]
1.4 (2012-09-12)
正确解析传递给 add_jinja2_search_path 和 jinja2.directories 的相对搜索路径 [Domen Kozar]
不要为 add_jinja2_extension 重新创建 jinja2.Environment [Domen Kozar]
删除 Python 2.5 兼容性 [Domen Kozar]
添加 static_url 过滤器。
添加 dev 和 docs setup.py 别名(类似于 Pyramid)。
修改模板加载方式,使其相对于调用渲染器的包进行,以便像 Chameleon 模板加载器一样工作。
1.3 (2011-12-14)
使脚手架与 Pyramid 1.3a2+ 兼容。
1.2 (2011-09-27)
在 Pyramid 1.2dev 上通过测试。
使兼容 Python 3.2(需要 Pyramid 1.3dev+)。
1.1 (2011-07-24)
添加 get_jinja2_environment 指令。
将所有配置器指令添加到文档中。
1.0 (2011-05-12)
现在可以通过 jinja2.i18n.domain 指定消息域,用于国际化。
Paster 模板现在设置启动区域 pot/po/mo 文件。
由于使用 jinja2.Environment.install_gettext_callables,pyramid_jinja2 现在依赖于 Jinja2 >= 2.5.0(参见 https://github.com/Pylons/pyramid_jinja2/pull/21)。
添加演示应用程序,以便可视化国际化工作。
0.6.2 (2011-04-06)
现在默认添加 jinja2.ext.i18n,有关详细信息,请参阅 i18n.rst。
将 add_jinja2_extension 指令添加到配置器中。
更新了 jinja2.extensions 解析机制。
修复了文档,指出使用 asset: 前缀不再是必需的。
0.6.1 (2011-03-03)
基于资产的加载现在具有优先级,并且不需要“asset:”前缀。
修复了 asset: 加载的“current”包机制,以便更准确地找到当前包。
删除对 pyramid_zcml 的依赖。
0.6 (2011-02-15)
重新编写文档。
现在可以通过完全绕过搜索路径,通过指定前缀 asset: 来查找模板。
更新 Paster 模板,使其更接近 Pyramid 核心中所做的更改。
当使用 includeme 时,将新指令 add_jinja2_search_path 添加到配置器中。
0.5 (2011-01-18)
添加 includeme 函数(打算通过 config.include 使用)。
修复了与 paster create 相关的文档错误,该错误已在 https://github.com/Pylons/pyramid_jinja2/issues/12 报告。
依赖 Pyramid 1.0a10 +(以使 ZCML 生效)。
0.4 (2010-12-16)
Paster 模板
更改以与 Pyramid 核心中提供的默认模板进行规范化:从 __init__.main 中删除对 config.begin() 和 config.end() 的调用,将入口点名称更改为 main,将入口 __init__.py 函数名称更改为 main,依赖于 WebError,使用 paster_plugins 参数在 setup.py 中的设置函数,依赖于 Pyramid 1.0a6+(使用 config 而不是 configurator)。
测试
使用 testing.setUp 和 testing.tearDown 而不是构造配置器(更好的向前兼容性)。
功能
添加 model_url 和 route_url 过滤器实现(并已文档化)。
文档
使用 Makefile,它会自动拉取 Pylons 主题。
0.3 (2010-11-26)
添加 jinja2.filters 和 jinja2.extensions 设置(感谢 aodag)。
记录所有已知设置。
0.2 (2010-11-06)
即使将 reload_templates 设置为 True,模板自动重新加载也无法正常工作。
0.1 (2010-11-05)
首次发布。 不兼容 之前的 repoze.bfg.jinja2:我们使用文件系统加载器(要加载的目录来自 jinja2.directories 设置)。在解析 renderer= 行时不会关注当前包。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。