如何覆盖 Cement Framework 中的 Jinja2 扩展设置?

How to override Jinja2 extension settings in Cement Framework?

我是 Cement Framework 和 Python 的新用户。我尝试覆盖 jinja2 模板处理程序的默认配置以将 trim_blocks 设置为 True。我在扩展中看到了环境设置的默认值,但我真的很想知道Cement中覆盖它的正确位置在哪里?

感谢您的帮助。

经过多次测试,我找到了覆盖 Jinja2 扩展 的方法。我希望这是一个很好的方法。

为了避免直接在命令中执行 class,我使用了 Cement hook "post_argument_parsing" .我在文件“main.py”的主 class 中定义了这个钩子,如下所示:

def jinja2_settings_override(self):
   # Jinja2 Environment context
   env = self.output.templater.env
   env.trim_blocks = True

class MyCommandClass(App):
    """Primary application."""

    class Meta:
        label = 'my_command'

        # ... #

        # register the hook to override jinja2 extension settings.
        hooks = [
            ('post_argument_parsing', jinja2_settings_override),
        ]