По соображениям производительности, как предложено здесь , я изучаю, как использовать шаблон, скомпилированный pr.
Я редактирую hello.tmpl
в каталоге шаблонов как
#attr title = "This is my Template"
<html>
<head>
<title>\${title}</title>
</head>
<body>
Hello \${who}!
</body>
</html>
затем выдают cheetah-compile.exe .\hello.tmpl
и получают hello.py
В другом файле Python runner.py
, у меня есть:
#!/usr/bin/env python
from Cheetah.Template import Template
from template import hello
def myMethod():
tmpl = hello.hello(searchList=[{'who' : 'world'}])
results = tmpl.respond()
print tmpl
if __name__ == '__main__':
myMethod()
Но результат
<html>
<head>
<title>${title}</title>
</head>
<body>
Hello ${who}!
</body>
</html>
Отладка на некоторое время, я обнаружил, что внутри hello.py
:
def respond(self, trans=None):
## CHEETAH: main method generated for this template
if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
trans = self.transaction # is None unless self.awake() was called
if not trans:
trans = DummyTransaction()
похоже, что trans is None, поэтому он переходит к DummyTransaction
, что я здесь пропустил?
Есть предложения, как это исправить?