Python 樱桃糖&x2B;Jinja,在哪里初始化环境
我正在用python编写一个应用程序,使用CherryPy和Jinja作为模板系统。可能需要说我是这些工具的初学者。 我现在面临的问题是我不知道在哪里初始化Jinja的环境类 目前我有Python 樱桃糖&x2B;Jinja,在哪里初始化环境,python,cherrypy,jinja2,Python,Cherrypy,Jinja2,我正在用python编写一个应用程序,使用CherryPy和Jinja作为模板系统。可能需要说我是这些工具的初学者。 我现在面临的问题是我不知道在哪里初始化Jinja的环境类 目前我有 application.py(入口点,设置环境并启动服务器) root.py(cherrypy的根页面类,必须从“application.py”导入,并且必须导入“application.py”以检索实例化的环境) pages.py(cherry.py的其他页面类必须导入'application.py',并且必
- application.py(入口点,设置环境并启动服务器)
- root.py(cherrypy的根页面类,必须从“application.py”导入,并且必须导入“application.py”以检索实例化的环境)
- pages.py(cherry.py的其他页面类必须导入'application.py',并且必须从根目录导入以构建树)
哪一种是正确的模式?你真的不应该。如果我是你,我会创建一个新的python模块
templates.py
,并将所有jinja环境配置/创建放在那里。之后,您只需在任何需要的地方导入该环境(例如,从templates import jinjaenv导入)。在这种情况下,您可以保持简单和可扩展性,以备将来使用。您真的不应该这样做。如果我是你,我会创建一个新的python模块templates.py
,并将所有jinja环境配置/创建放在那里。之后,您只需在任何需要的地方导入该环境(例如,从templates import jinjaenv导入)。在这种情况下,您可以保持简单和可扩展性,以备将来使用。很好,但模板模块可以被多个模块引用。python是否知道“jinjaenv”应该是“相同”的实例对象,或者它只是在每次导入时实例化一个新实例?它将是相同的实例。模块中定义的所有变量(类、函数)都是共享的。您可以将python模块视为对象,加载一次,然后在import语句的帮助下引用。很好,但是模板模块可以被多个模块引用。python是否知道“jinjaenv”应该是“相同”的实例对象,或者它只是在每次导入时实例化一个新实例?它将是相同的实例。模块中定义的所有变量(类、函数)都是共享的。您可以将python模块视为对象,它们被加载一次,然后在import语句的帮助下被引用。