gpt4 book ai didi

python - 没有 Pyramid 的变色龙宏

转载 作者:太空宇宙 更新时间:2023-11-03 19:19:12 25 4
gpt4 key购买 nike

这是我在 Pyramid 中使用的一些代码,用于将宏加载到我的 Chameleon 模板中:

@subscriber(BeforeRender)
def add_base_templates(event):
"""Define the base templates."""
main_template = get_renderer('../templates/restaurant.pt').implementation()
event.update({ 'main_template': main_template })

如果没有 Pyramid ,我如何实现同样的目标?例如,在这段代码中:

from chameleon import PageTemplateFile

path = os.path.dirname(__file__)
lizard = PageTemplateFile(os.path.join(path, '..', 'emails', template+'.pt'))
html = lizard(**data)

最佳答案

让我们看看您的代码做了什么;要在 Pyramid 之外使用宏,您所要做的就是复制它。

  1. 当您在 Pyramid 中调用 .implementation() 时,您实际上是在检索加载了正确模板路径的 PageTemplateFile 实例。

  2. BeforeRender 事件允许您修改 View 中的字典响应,并在 add_base_templates 事件处理程序中添加一个名为 main_template< 的新条目.

将这两者结合起来,在您自己的代码中获得相同的效果,在调用 lizard 模板时传入 main_template 宏模板:

from chameleon import PageTemplateFile

path = os.path.dirname(__file__)
main_template = PageTemplateFile(os.path.join(path, '..', 'templates', 'restaurant.pt'))
lizard = PageTemplateFile(os.path.join(path, '..', 'emails', template+'.pt'))
html = lizard(main_template=main_template, **data)

这就是全部内容,真的。

关于python - 没有 Pyramid 的变色龙宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10355146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com