私はCheetahテンプレートの動的コンパイルを設定しようとしています。これは開発に便利です(変更するたびにcheetah compile
で再コンパイルする必要はありません)。 Cheetah.Template.Template
が正しいAPIだと思われますが、それは単に親テンプレートを処理しません。親テンプレートの自動コンパイル
だから私は持っている場合:
-- __init__.py
-- index.tmpl:
#extends layout.A
-- layout/
-- __init__.py
-- A.tmpl:
#echo 'Hello!'
私はルートディレクトリにはPythonを実行する場合、私は次を取得したい:私はcheetah compile
でA.tmpl
をコンパイルする場合
>>> from Cheetah.Template import Template; t = Template(file='index.tmpl')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.6/site-packages/Cheetah-2.4.3-py2.6-freebsd-7-amd64.egg/Cheetah/Template.py", line 1259, in __init__
self._compile(source, file, compilerSettings=compilerSettings)
...
ImportError: No module named A
、エラーが消え、その変更テンプレートにindex.tmpl
コンパイルの結果には影響しません:
$ cat layout/A.tmpl
#echo 'Hello, world!'
$ python
>>> from Cheetah.Template import Template; t = Template(file='index.tmpl')
>>> str(t)
'Hello!'
すべての親テンプレートを自分で再コンパイルすべきですか? Aquarium
フレームワークのように)?
チーターバージョン2.4。
Django1.3 \ Cheetahの統合に関するヒントもありがとうございます。早期ごプロセスの起動中に、次の2行を含め
うわー、これは最高です!スレッドへのリンクありがとう。 –