私は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
index.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