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

标签 python cherrypy jinja2

我正在使用 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)。在这种情况下,您可以保持简单和可扩展性以供将来使用。

关于python - CherryPy + Jinja,在哪里初始化环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8159576/

相关文章:

python - 在另一个方法中运行一个方法。 Python

python - 具有相关导入的 Pyinstaller

python TCPServer 地址已在使用中,但我关闭服务器并使用 `allow_reuse_address`

SSL 在 CherryPy 中不起作用

python - 使用 jinja2 模板指令加载外部脚本

html - 如何返回原始 HTML(使用 Flask)

python - 从 python Egg 访问文件

python - cherrypy 用一个函数或类处理所有请求

java - ReSTLet 可以用来近似 CherryPy 的行为吗

Python jinja2模板,如何计算一个列表