Flask で得られるコンテキスト プロセッサに相当する bottle.py はありますか?
1491 次
3 に答える
5
SimpleTemplateでバニラボトルを使用している場合、私が見つけた解決策があります。
私のサイトでは、すべてのテンプレートのいくつかの機能にアクセスする必要がapp.get_url
ありましたが、明らかにそれらの1つです。これは私のために働いた:
# after app creation, but before the views
SimpleTemplate.defaults["get_url"] = app.get_url
SimpleTemplate.defaults["url"] = lambda: request.url
SimpleTemplate.defaults["fullpath"] = lambda: request.fullpath
SimpleTemplate.defaults["sorted"] = sorted
これはBottle0.9の時点で機能しますが、フレームワークの最新バージョンではテストしていません。
この動作は文書化されていませんが、MarcelHellkampがこのスレッドで説明しています。そこでは、他の解決策も言及されています:
_vars
または同様のテンプレート引数でグローバルを渡します。- デフォルトを提供するデコレータを作成します。
また、Bottle 0.10では、問題に関連する新しい関数がSimpleTemplateテンプレート名前空間に導入されました:defined
、、get
およびsetdefault
于 2012-05-20T10:16:36.827 に答える
0
注: この同じソリューションは、他のテンプレート エンジンでも使用できます。手法はまったく同じですが、BaseTemplate (すべてのテンプレート クラスで機能します) または使用するエンジンのクラスを使用します。
于 2014-10-03T19:25:13.223 に答える