2013-05-19 4 views
2

Mako 템플릿으로 CherryPy를 사용하고 있습니다.Mako 템플릿에서 상속 템플릿으로 변수 전달

<%inherit file="base.html"/> 
<%def name="title()">$(title)</%def> 
this is the body content 

후 상속 base.html 템플릿 :

class Landing(object): 
    def index(self): 
     tmpl = lookup.get_template("index.html") 
     return tmpl.render(title="Hello World") 
    index.exposed = True 

index.html에 :

<!DOCTYPE html> 
    <head> 
     <meta charset="utf-8"> 
     <title>$(self.title())</title> 
    </head> 
    <body> 
     <h1>$(parent.title())</h1> 
     ${self.body()} 
    </body> 
</html> 
나는 (이 예 title에) 초기 호출에서 aruguments을 전달하는 방법을 해결하려고 노력하고있다

나는 self.titleparent.title을 시도해 보았습니다. 초기 호출에서 변수를 전달하려면 어떻게합니까? 렌더링 된 변수를 사용하기 위해

+1

$ {제목}로 사용합니다. 따라서 보통 괄호 대신 중괄호를 사용하십시오. 그리고 함수 호출이 아니므로 마지막에()를 제거하십시오. –

+0

아마도 name = "title()"을 name = "$ {title}"으로 변경하고 싶을 것입니다. –

+0

@basvandenberg 감사합니다. 대답으로 추가하면 받아 들일 것입니다. 나는 title()을 $ {title}로 대체하려고 시도했으나 오류가 발생했습니다 :'mako.exceptions.CompileException : 'def'태그의 Attibute 'name'이 'template/index.html'파일에 삽입 된 표현식을 허용하지 않습니다 : 2 char : 1' – xylar

답변

0

- 당신은 일해야 ${ title }하지 $(title)

관련 문제