我正在用python编写一个应用程序,使用CherryPy和Jinja作为模板系统。可能需要说我是这些工具的初学者。我现在面临的问题是,我不知道在哪里初始化Jinja的环境类。
目前我有
- application.py(入口点,设置环境并启动服务器)
- root.py (cherrypy的根页面类,必须从'application.py'导入,并且必须导入'application.py'来检索实例化的环境)
- pages.py (cherry.py的其他页面类,必须导入'application.py',并且必须从根目录导入来构建树)
试图运行,最终似乎是一个循环引用和失败(应用程序>根>页>应用程序)。
我应该坚持只有一个环境实例,还是可以有一个实例在root.py和另一个在pages.py?
哪个是正确的模式?
你不应该重复自己的话。如果我是你,我会创建一个新的python模块templates.py
,并将所有的jinja环境配置/创建放在那里。之后,您可以简单地在需要的地方导入该环境(例如from templates import jinjaenv
)。在这种情况下,您可以保持简单和可扩展,以供将来使用。