2011-09-11 2 views
2

피라미드에서는 필론에서와 비슷한 '도우미'기능을 만들었습니다.Pyramid/Pylons Framework - 특정 작업을 수행하는 데 '도우미'를 사용하는 방법에 대한 의견

내 helpers.py 파일에서 하나 개의 특정 기능은 다음과 같이이다 :

from pyramid.renderers import render_to_response 

def createBlog(): 
    ## lots of code here ## 
    return render_to_response('blog.mako', {'xyz':xyz}) 

그리고 내 다른 응용 프로그램에서 내가 헬퍼를 가져오고 내 템플릿에서 다음과 같이 수행 할 수 있습니다

${h.createBlog()} 

내 페이지에 블로그를 만듭니다. 그러나 나는 이것이 프로젝트 내 어디에서나 쉽게 사용할 수있는 "모듈"스타일 플러그인을 만들기 위해 헬퍼를 사용하는 좋은 방법인지 궁금합니다. 아니면 아직이 기술에 대한 결함이 있습니까?

감사합니다.

+0

실제로 응답을 템플릿에 포함하고 있습니까, 아니면 실제로 "render_to_response"대신 "render"를 호출하고 있습니까? –

답변

4

정말 전 세계적으로 드러내고 싶은 물건에 달려 있습니다. 분명히 h에 입력 한 내용은 응용 프로그램 전체에서 사용할 수 있지만 실제로는 원하는보기에서만 createBlog 함수를 반환 할 수 있습니다. 잘 알려지지 않은 한 가지 사실은 클래스 기반보기를 사용하면 실제 클래스 인스턴스가 보기에서 view 글로 z 변수로 사용 가능합니다. 예를 들어 :

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()}를 사용하여 블로그를 렌더링 호출 할 수 있습니다.

+0

정보를 제공해 주셔서 감사합니다. 내가보기 안에있는 동안 함수를 반환하는 것이 좋습니다. – sidewinder

관련 문제