ピラミッド/パイロンフレームワーク - 特定のタスクを達成するために「ヘルパー」を使用する方法についての意見

StackOverflow https://stackoverflow.com/questions/7379668

質問

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()}.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top