5

GAE で初めての Bottle.py アプリを作成しました。テンプレートを変更するときに開発サーバーを再起動して変更を確認する必要があることを除いて、機能しています。ドキュメントには、 bottle.debug(True) の場合はテンプレートのキャッシュが無効になるはずであり、 bottle.TEMPLTE.clear() も呼び出すことができると書かれていますが、どちらも機能しません。run(reloader=True) も設定しようとしましたが、エラーが発生します。私は何を間違っていますか?bottle.debug() は GAE の他のユーザーに対して機能しますか?

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

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

bottle.run(server='gae')

更新: bottle.run(server='gae') を使用する代わりに、標準の main() 関数を自分で含めたところ、機能するようになりました。

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

if __name__ == "__main__":
  main()
4

2 に答える 2

0

Bottle/GAE doc で導入された標準的な方法は次のとおりです。

app = bottle.app()

次に を呼び出すdev_appserver.pyと、定義したスクリプトからアプリを読み取っapp.yamlてインポートし、GAE 環境のその他すべてを処理します。

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

于 2012-04-22T15:34:23.273 に答える
0

ドキュメントから:

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

メソッドの実行:

bottle.run( debug = True )

debuggmode を有効にします。

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

お気に入りのテンプレート エンジン用に独自のアダプタを作成するか、定義済みのアダプタのいずれかを使用できます。現在、完全にサポートされているテンプレート エンジンは 4 つあります。

クラス、URL、デコレータ、レンダリング、関数

SimpleTemplate、SimpleTemplate、エンジン、view()、template()

MakoTemplatehttp: //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
于 2013-07-18T16:36:40.220 に答える