CherryPy + Jinja,在哪里初始化环境

时间:2011-11-16 22:21:44

标签: python cherrypy jinja2

我正在使用CherryPy和Jinja作为模板系统在python中编写应用程序。可能需要说我是这些工具的初学者。 我现在面临的问题是我无法想象在哪里初始化Jinja的Environment类。

目前我有

  • application.py(入口点,设置环境并启动服务器)
  • root.py(cherrypy的根页面类,必须从'application.py'导入,并且必须导入'application.py'才能检索实例化的环境)
  • pages.py(cherry.py的其他页面类,必须导入'application.py',并且必须从root导入以构建树)

尝试运行最终会出现在循环引用中并失败(应用程序> root> pages>应用程序)。

我应该只关注一个Environment实例,还是可以在root.py上有一个实例,在pages.py中有另一个实例?

这是正确的模式吗?

1 个答案:

答案 0 :(得分:0)

你不应该repeat yourself。如果我是你,我会创建一个新的python模块templates.py并将所有jinja环境配置/创建放在那里。之后,您只需在任何需要的地方导入该环境(例如from templates import jinjaenv)。在这种情况下,您可以保持简单和可扩展性,以备将来使用。