我正在使用 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/