ピラミッド/パイロンフレームワーク - 特定のタスクを達成するために「ヘルパー」を使用する方法についての意見
質問
Pyramidでは、パイロンと同様の「ヘルパー」機能を作成しました。
私のhelpers.pyファイルの1つの特定の機能は次のようなものです。
from pyramid.renderers import render_to_response
def createBlog():
## lots of code here ##
return render_to_response('blog.mako', {'xyz':xyz})
そして、他のアプリケーションでは、ヘルパーをインポートし、テンプレートで次のようなことを行うことができます。
${h.createBlog()}
私のページにブログが作成されます。しかし、私はこれがヘルパーを使用して、プロジェクトのどこでも簡単に使用できる「モジュール」スタイルのプラグインを作成する良い方法だと思っています。それとも、私がまだ本当に考えていないこのテクニックに欠陥がありますか?
ありがとう!
解決
それは本当にあなたがグローバルにどれだけのものをさらしたいかに依存します。明らかにあなたが入れたものは何でも h
アプリケーション全体で利用可能ですが、 createBlog
あなたが望むビューで機能するだけで機能します。ほとんど知られていない情報の1つは、クラスベースのビューを使用する場合、実際のクラスインスタンスがビューで利用可能であることです。 view
グローバル変数。例えば:
class Foo(object):
def __init__(self, request):
self.request = request
def createBlog(self):
return render('blog.mako'. {})
@view_config(...)
def myview(self):
return {}
これでテンプレートでは、ブログを使用してレンダリングすることができます ${view.createBlog()}
.
所属していません StackOverflow