• 회원가입
  • 로그인
  • 구글아이디로 로그인

[filters] Jinja - truncate() 필터 - 문자열을 지정 길이로 자르기 (= truncate필터 = 트런케이트필터)

목차
  1. truncate() 예제 - 문자열을 지정 길이로 자르기
  2. truncate() 정의
  3. truncate() 구문

 

truncate() 예제 - 문자열을 지정 길이로 자르기

 

{{ "foo bar baz qux"|truncate(9) }}

결과값: "foo..."

  • {{ "foo bar baz qux"|truncate(9, False, "...", 5) }}와 같음.
  • (문자열길이= 15)보다 (length 9 + leeway 5 = 14)값이 더 작아서 자르기 작동 O.
  • "foo bar b" 까지가 9인데, 맨 뒤를 점 3개로 대체하면 "foo ba..."가 됨.
  • killwords 매개변수 값이 False라서 중간의 "bar" 단어가 잘려서 "ba"가 되었으므로 해당 단어와 빈 공백을 버림.
  • 결국, "foo..."가 됨.


{{ "foo bar baz qux"|truncate(9, True) }}

결과값: "foo ba..."

  • {{ "foo bar baz qux"|truncate(9, True, "...", 5) }}와 같음.
  • (문자열길이= 15)보다 (length 9 + leeway 5 = 14)값이 더 작아서 자르기 작동 O.
  • "foo bar b" 까지가 9인데, 맨 뒤를 점 3개로 대체하면 "foo ba..."가 됨.
  • killwords 매개변수 값이 True라서 정확히 해당 길이에서 자름.
  • 결국, "foo ba..."가 됨.

 

{{ "foo bar baz qux"|truncate(11) }}

결과값:  "foo bar baz qux"

  • {{ "foo bar baz qux"|truncate(11, False, "...", 5) }}와 같음.
  • (문자열길이= 15)보다 (length 11 + leeway 5 = 16)값이 더 커서 자르기 작동 X.
  • 결국, "foo bar baz qux"가 됨.

 

{{ "foo bar baz qux"|truncate(11, False, '...', 0) }}

결과값: "foo bar..." 

  • {{ "foo bar baz qux"|truncate(11, Fasle, "...", 0) }}와 동일.
  • (문자열길이= 15)보다 (length 11 + leeway 0 = 11)값이 더 작아서 자르기 작동 O.
  • "foo bar baz" 까지가 11인데, 맨 뒤를 점 3개로 대체하면 "foo bar ..."가 됨.
  • killwords 매개변수 값이 False라서 "..." 앞의 빈 공백을 날림.
  • 결국, "foo bar..."가 됨.

 


PS. 문자열을 정확히 해당 길이에서 자르기

{{ "foo bar baz qux"|truncate(5, True, '', 0) }}
    -> foo b

 

{{ "홈짱닷컴 Homzzang.com"|truncate(4, True, '', 0) }}

    -> 홈짱닷컴 

 

 

truncate() 정의

 

문자열을 지정 길이로 자른 복사본을 반환하는 필터

 


 

1. 

  • 첫 번째 매개변수 length (자를길이) - (기본값: 255)
  • 두 번째 매개변수 killwords (자름방식) - True: 정확히 해당 길이서 자름. / False: 잘린 마지막 단어를 버림.
  • 세 번째 매개변수 end (잘림표시) - (기본값: ...)
  • 네 번째 매개변수 leeway (허용오차) - 허용오차 범위 내 문자열은 안 자름.

 

2.

  • 문자열 길이는 문자열 개수로 셈.
  • 일반적으로 문자열 길이는 0부터 세지만, 이 필터에서는 문자열의 길이를 1부터 셈. 따라서 첫 번째 문자의 인덱스는 1이 되고, 문자열의 마지막 문자의 인덱스는 문자열 길이와 동일값이 됨.
  • 문자열 길이를 문자 개수로 세려면 length() 필터 이용: {{ "홈짱닷컴 Homzzang.com"|length }} {# 17 #}  /  {{ "foo bar baz qux"|length }} {# 15 #}

 

3. 공식 매뉴얼

https://jinja.palletsprojects.com/en/3.1.x/templates/#jinja-filters.truncate

 

 

truncate() 구문

 

jinja-filters.truncate(s: str, length: int = 255, killwords: bool = False, end: str = '...', leeway: int | None = None) → str

 


[매개변수]

 

s: str

필수. 지정 길이로 자를 문자열.

 

length: int = 255

선택. 잘라낼 길이. 

  • 문자일 길이는 1부터 세며, 문자열 개수로 셈.
  • end 매개변수에 포함된 문자열 포함 길이임.

 

killwords: bool = False

선택. 문자열을 정확히 자를지 여부 지정.

  • True - 지정 길이에서 정확히 자름.
  • False - 지정 길이 초과한 부분의 단어 자체를 버림. (기본값) (주의:  (length + end) 길이가 단어 중간에 걸친 경우, 해당 단어와 끝의 빈 공백을 버림.)

 

end: str = '...'

선택. 지정 길이로 잘라진 문자열임을 표시하는 문자열.

 

leeway: int | None = None

선택. 문자열을 안 자를 허용 오차 범위 길이값.

  • (length + leeway) 길이 이내 경우, 문자열을 자르지 않음.
  • 기본값: (최신버전: 5), (구 버전: 0)이나 차후에 바뀔 지 모름.

 


[반환값]

 

문자열을 지정 길이로 자른 복사본을 반환.

 


방문 감사합니다. (즐겨찾기 등록: Ctrl + D)

분류 제목
filters Jinja - title() 필터 - 각 단어의 첫글자를 대문자로 나머지는 소문자로 변환. (= title필…
filters Jinja - tojson() 필터 - JSON 문자열로 직렬화 (= tojson필터 = 투제이슨필터)
filters Jinja - truncate() 필터 - 문자열을 지정 길이로 자르기 (= truncate필터 = 트런케이…
filters Jinja - unique() 필터 - 고유 아이템으로 구성된 반복자 반환 (= unique필터 = 유니크필…
filters Jinja - upper() 필터 - 대문자로 변환 (= upper필터 = 어퍼필터) ※ 문자열 전체를 대문…
filters Jinja - urlencode() 필터 - URL 주소나 또는 쿼리에 적합한 문자열로 변환 (= urlen…
filters Jinja - urlize() 필터 ★ - 텍스트 URL을 클릭 가능한 링크로 변환 적용 (= urlize필…
filters Jinja - wordcount() 필터 - 문자열의 단어 개수 세기 (= wordcount필터 = 워드카운…
filters Jinja - wordwrap() 필터 - 문자열을 지정 길이 단위로 쪼개기 (= wordwrap필터 = 워…
filters Jinja - xmlattr() 필터 - dict의 아이템 기반으로 SGML/XML 속성 문자열 생성 (= …
filters Jinja - trim() 필터 - 문자열 앞뒤 공백(또는, 지정문자) 제거 (= trim필터 = 트림필터)
3/3
목록
찾아주셔서 감사합니다. Since 2012