Skip to main content
 首页 » 编程设计

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

2025年05月04日11kerrycode

我正在使用 CherryPy 和 Jinja 作为模板系统在 Python 中编写应用程序。可能需要说我是这些工具的初学者。 我现在面临的问题是我不知道在哪里初始化 Jinja 的环境类。

目前我有

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

尝试运行最终似乎是循环引用并失败(应用程序 > 根 > 页面 > 应用程序)。

我应该坚持只使用一个环境实例,还是在 root.py 中有一个实例而在 pages.py 中有另一个实例是否可以?

哪个是正确的模式?

请您参考如下方法:

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