파이썬/flask

flask macro 콜러함수 caller()

개발자J군 2020. 10. 19. 21:12

caller() 사용법, 존재 이유에 대해서 고민하는데 많은 시간이 걸렸다.

이해하면 생각보다는 간단하다.

 

일단 아래와 같은 매크로 코드가 있다고 가정하자.

#test.html

{%macro test(string)%}
<h3>테스트 글자 : {{string}}</h3>

{%endmacro%}

작성한 매크로는 아래처럼 활용할 수 있다.

#main.html

{%from "test.html" import test%}

{{test("안녕하세요")}}

결과

콜러를 활용하는 코드를 추가해보자.

{%macro test2(string)%}
<h3>테스트 글자 : {{string}}</h3>
{{caller()}}
{%endmacro%}
#main.html
#매크로 임포트
{%from "test.html" import test,test2%}


#test2 매크로
{%call test2("두번째 테스트입니다.")%}
<h1>콜러 영역 입니다.</h1>
<h2>콜러 영역 입니다.</h2>
<h3>콜러 영역 입니다.</h3>
<h4>콜러 영역 입니다.</h4>
{%endcall%}

 

 

 

결과

 

 

쉽게 말하면 콜러는 정의한 매크로 외에 추가할 수 있다는 점이다. 물론 매크로에 처음부터 변수를 넣어서 활용할 수 있지만, 변수의 수가 고정적이지 않다면 콜러영역에서 별도로 처리하는 것이 편하다. 

반응형