"플라스크 웹 개발"을 읽고 있습니다. 예 4-3에서 ,Flask에서 가져 오기와 확장의 차이점은 무엇입니까?
{% extends "base.html" %}
{% import "bootstrap/wtf.html" as wtf %}
내가 알고 싶습니다? (. 나는 그들이 사용에 매우 유사하다고 생각) 상황에서 확장 사이의 차이점은 무엇 을 가져올, 내가 사용하는 것 확장 또는 가져 오기?
"플라스크 웹 개발"을 읽고 있습니다. 예 4-3에서 ,Flask에서 가져 오기와 확장의 차이점은 무엇입니까?
{% extends "base.html" %}
{% import "bootstrap/wtf.html" as wtf %}
내가 알고 싶습니다? (. 나는 그들이 사용에 매우 유사하다고 생각) 상황에서 확장 사이의 차이점은 무엇 을 가져올, 내가 사용하는 것 확장 또는 가져 오기?
당신 extend
템플릿을 사용하면 (호출 제어 호출)을 제어 다른 템플릿 -은 "부모"템플릿에만 이름 블록 렌더링됩니다 : 한편
{% extends "base.html" %}
{% block main_content %}
Only shows up if there is a block called main_content
in base.html.
{% endblock main_content%}
을 import
단순히 결합 템플리트를 템플릿 범위의 이름으로 변경하고 호출 할 시간과 위치를 호출자가 제어합니다 (호출자가 호출자를 제어 함).
{% import "bootstrap/wtf.html" as wtf %}
Some of your own template code with {{ wtf.calls() }} where it makes sense.
여기 은 차이가입니다. {% extends parent.html %}
을 사용하면 parent.html
을 렌더링하고 {% block %}
을 정의 할 수 있으며 {% import %}
에서는 템플릿 변수에 액세스 할 수 있습니다.
그래서 예제 템플릿은 base.html
을 확장하고 bootstrap/wtf.html
에서 변수를 가져옵니다. 파이썬의 클래스 상속 및 import 문과 같이 생각하십시오.
기본적으로 포함 된 템플릿은 현재 컨텍스트에 전달되고 가져온 템플릿은 전달되지 않습니다. 기본적으로 Jinja documentation
이 포함 된 템플릿을 가져온 반면 캐시되지 않습니다.
매크로가 포함 된 모듈로 가져 오기가 자주 사용되기 때문입니다.
매크로가 포함 된 템플릿에서 가져 오기를 사용하는 것이 가장 좋습니다. 일부 마크 업 템플릿을 사용하지 않을 때 include를 사용하는 것이 가장 좋습니다.