我正在开发一个cherrypy+cheetah 应用程序,并希望改善开发体验。
当我事先手动编译模板时,我一切正常。(更新:这就是生产环境的工作方式:预编译,不要发送 *.tmpl 并将模板作为常规 python 模块加载。)但是,在开发过程中,我宁愿在每次引用模板时都加载模板,这样我就不会不需要杀死并重新启动我的应用程序。我有几个问题:
- 如果我有从基本模板继承的模板,我会收到导入错误(找不到基本模板)。我想我在实验期间确实有这个工作,但不幸的是没有保存它,现在我无法让它工作。
- 假设我得到 1. 工作,如何使它即使在基本模板中的编辑也可以在不重新启动的情况下被拾取。
下面是我应该演示问题的示例应用程序。目录结构如下:
t.py
templates/
base.tmpl
index.tmpl
t.py:
import sys
import cherrypy
from Cheetah.Template import Template
class T:
def __init__(self, foo):
self.foo = foo
@cherrypy.expose
def index(self):
return Template(file='templates/index.tmpl',
searchList=[{'foo': self.foo}]).respond()
cherrypy.quickstart(T(sys.argv[1]))
base.tmpl:
#def body
This is the body from the base
#end def
This is the base doc
索引.tmpl:
#from templates.base import base
#extends base
#def body
$base.body(self)
This is the extended body
#end def
This is from index
像这样运行它:
python t.py Something