[Python Django] 템플릿, 태그, 필터 의 정의 : Definitions of Template, Tags, Filters Python


어떤 웹서비스를 만들던 비슷한 상황에 맞닥 뜨리게 되겠지만
장고를 사용하다보면 Template 쪽에서 원하는 작업이 다양하게 요구될 수 있다.

일단 Django 의 template, 그리고 템플릿의 tag 와 filter 가 무엇인지 알아보자.
공식문서의 원문을 일단 가져왔고 여러분들을 위해 해석해 두었다 한번 정독하도록하자.

================================================================================

Template : A template is simply a text file. It can generate any text-based format (HTML, XML, CSV, etc.).
A template contains variables, which get replaced with values when the template is evaluated, and tags, which control the logic of the template.

템플릿은 단순한 텍스트 파일이다. 이것은 다양한 종류의 텍스트 포맷을 가질 수 있다 (HTML, XML, CSV 등..)
템플릿은 표시될때 다른 값으로 변경될 수 있는 변수들(Variables)템플릿의 로직 흐름을 통제할 수 있는 태그들(Tags)을 가질 수 있다. 


Tag : Tags look like this: {% tag %}. Tags are more complex than variables: Some create text in the output, some control flow by performing loops or logic, and some load external information into the template to be used by later variables.

Some tags require beginning and ending tags (i.e. {% tag %} ... tag contents ... {% endtag %}).

태그는 {% tag %} 와 같이 생겼다. 태그틑 변수보다 복잡하다. 어떤것들은 텍스트를 생성해내기도 하고 어떤것은 루프나 로직을 구사함으로서 템플릿의 컨트롤 플로우를 좌지우지 하기도 한다.  또 어떤것들은 외부의 정보를 템플릿으로 불러들일 수도 있다.

어떤 태그는 시작 태그와 종료 태그를 쌍으로 가진다. 예를 들어 요렇게... (ex. {% tag %} ... 태그 내용 ... {% endtag %} )


Filter :  You can modify variables for display by using filters.

Filters look like this: {{ name|lower }}. This displays the value of the {{ name }} variable after being filtered through the lower filter, which converts text to lowercase. Use a pipe (|) to apply a filter.

Filters can be “chained.” The output of one filter is applied to the next. {{ text|escape|linebreaks }} is a common idiom for escaping text contents, then converting line breaks to <p> tags.

Some filters take arguments. A filter argument looks like this: {{ bio|truncatewords:30 }}. This will display the first 30 words of thebio variable.

Filter arguments that contain spaces must be quoted; for example, to join a list with commas and spaces you’d use {{ list|join:", "}}.

필터는 변수의 표시값을 변경시킬 수 있다.
필터는 요렇게 생겼다. {{ name | lower }}. 이것은 {{ name }}  이라는 변수를 lower 라는 필터를 거쳐서 소문자로만 표시하게끔 한다는 것이다. 
파이프 문자 ( | ) 를 사용하여 필터를 적용할 수 있다.

필터는 체이닝 (연속 사용) 이 가능하다. 
예 : {{ text | escape | linebreaks }} 은 text 변수의 데이터를 escape 처리한 후에 개행 문자열을 <p> 태그로 자동 전환해주는 코드이다.

어떤 필터는 인자값을 전달 받는다. 필터 인자값 전달은 다음과 같다 : {{ bio | truncatewords:30 }} 
이것은 bio 란 텍스트의 첫 30개 문자만을 표시 할 것이다.

만일 필터의 인자값에 빈공간(space) 가 포함되어있다면 쌍따옴표로 감싸주어야 한다.
요렇게 : {{ list | join:", " }} 

========================================================

이 이상의  자세한 내용을 알고싶다면 아래의 공식문서(Django Official Documentation)를 확인하도록하자
내가 사용하는 1.8 버전 기준이다. 다른 버전을 쓰는분들은 해당버전에 맞는 Documentation을 보는것이 좋을것이다.
뭐 기본개념이야 비슷하겠지만... ㅎㅎㅎ


Built-in template tags and filters (내장 템플릿 태그와 필터)

Custom template tags and filters (사용자 생성 템플릿 태그와 필터)



핑백



통계 위젯 (블랙)

6221
1191
243249

GoogleAdsenseResponsive

Cluster map