CherryPy + Jinja,在哪初始化环境
我正在用Python写一个应用程序,使用CherryPy作为框架,Jinja作为模板系统。可能需要说明的是,我对这些工具还是个新手。
我现在遇到的问题是,我不知道在哪里初始化Jinja的Environment类。
目前我的文件结构是这样的:
- application.py(入口文件,设置Environment并启动服务器)
- root.py(CherryPy的根页面类,必须从'application.py'导入,并且必须导入'application.py'以获取实例化的Environment)
- pages.py(其他CherryPy页面类,必须从'application.py'导入,并且必须从root导入以构建树状结构)
尝试运行这个结构时,结果似乎出现了循环引用的问题,导致失败(application > root > pages > application)。
我应该只使用一个Environment实例,还是在root.py和pages.py中各有一个实例也可以?
这样做哪种方式是正确的呢?
1 个回答
0
你其实不应该重复自己。如果我是你,我会创建一个新的Python模块,叫做templates.py
,把所有的jinja环境配置和创建都放在那里。之后你只需要在需要的地方导入这个环境就可以了,比如用from templates import jinjaenv
。这样做可以让事情变得简单,而且以后也方便扩展。