2012-01-31 19 views
5

GAEに初めてのBottle.pyアプリケーションを作成しました。私はテンプレートを変更するときに変更を見るためにdevサーバを再起動しなければならないことを除いて、動作しています。ドキュメントでは、テンプレートのキャッシングはbottle.debug(True)のときは無効になっていると言いますが、bottle.TEMPLTE.clear()も呼び出すことができますが、どちらも動作しないと言います。私もrun(reloader = True)を設定しようとしましたが、エラーが発生します。私は間違って何をしていますか? bottle.debug()はGAEの誰かのために動作しますか?デバッグモードにもかかわらず、Bottle.pyキャッシングテンプレート

import bottle 
bottle.debug(True) 
bottle.TEMPLATES.clear() 

@bottle.route('/') 
def index(name='World'): 
    return bottle.template('main') 

bottle.run(server='gae') 

更新: 代わりのbottle.run(サーバは= 'GAE')を使用して、私は(標準メインを含む)自分自身を機能し、今では動作します。

def main(): 
    app = bottle.default_app() 
    util.run_wsgi_app(app) 

if __name__ == "__main__": 
    main() 
+0

あなたは 'ログへの書き込みを' logging.info(...)を使用するbottle.pyファイルを変更しようとしたことがあり'template(...)'が呼び出されたときのDEBUGグローバルの値? – philofinfinitejest

+0

「False」と表示されています... – arkanciscan

答えて

0

ボトル/ GAEドキュメントによって導入された標準的な方法は次のとおりです。

app = bottle.app()

その後、dev_appserver.pyを呼び出し、それがapp.yamlを読み取り、ために他のすべてをあなたが定義したスクリプトからアプリケーションをインポートして、ハンドルGAE環境。

あなたは.pyを直接実行しないでください。ボトル・ウェイから実行すると、テンプレートキャッシュ・メカニズムを含むdev_appserverからのハンドルはスキップされます。もちろん、Googleのutilを使用すると、道具や方法は変わりませんが、uwsgiまたは他のwsgi関連プロジェクトの文書によれば、スクリプトモジュール内のapp変数はオブジェクトを上位処理のために提供する必要があります。ドキュメントから

0

テンプレートは、コンパイル後にメモリにキャッシュされています。テンプレートファイルを変更すると、テンプレートキャッシュをクリアするまで効果はありません。これを行うにはbottle.TEMPLATES.clear()を呼び出します。デバッグモードではキャッシングは無効になっています。

メソッドの実行:

bottle.run(debug = True) 

がdebuggmodeを可能にします。

デフォルトテンプレートは安定バージョン0.11.6のSimpleTemplateです。

お気に入りのテンプレートエンジン用に独自のアダプタを作成することも、 はあらかじめ定義されたアダプタを使用することもできます。

クラス、URL、デコレーター、レンダリング、機能

SimpleTemplate、SimpleTemplate、エンジン、ビュー()、テンプレート()

:現在4つの完全 サポートテンプレートエンジンがあります

MakoTemplate,http://www.makotemplates.org、mako_view()、mako_template()

CheetahTemplatehttp://www.cheetahtemplate.org/、cheetah_view()、cheetah_template()

Jinja2Templatehttp://jinja.pocoo.org/、jinja2_view()、jinja2_template()デフォルトよりも、いくつかの他のテンプレートエンジンを使用してみてください>>>

。 < < <

ちょうどその の専門デコレータをインポートし、機能、レンダリング、デフォルトのテンプレートエンジンとしてMakoTemplateを使用するには:

from bottle import mako_view as view, mako_template as template 

を>>>あなたが重複したファイルを持っていけないことを確認してくださいビューパス< < <

TEMPLATE_PATH = ['./', './views/'] 

>>>テンプレート辞書をプリントアウトし< < <

print bottle.TEMPLATES