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

[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)이나 차후에 바뀔 지 모름.

 


[반환값]

 

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

 



분류 제목
tests Jinja - sameas() 테스트 - 두 객체의 메모리 주소 동일성 체크 (= sameas테스트 = 세임…
tests Jinja - sequence() 테스트 - 시퀀스인지 여부 체크 (= sequence테스트 = 시퀀스테스트…
tests Jinja - string() 테스트 - 문자열인지 체크 (= string테스트 = 스트링테스트)
tests Jinja - test() 테스트 - 테스트 존재 여부 체크 (= test테스트 = 테스트테스트)
tests Jinja - true() 테스트 - 참인지 체크 (= true테스트 = 트루테스트)
tests Jinja - undefined() 테스트 - 변수가 정의 안 되었는지 체크 (= undefined테스트 =…
tests Jinja - upper() 테스트 - 대문자인지 체크 (= upper테스트 = 어퍼테스트)
functions Jinja - range() 함수 ★ - 지정 범위 안 지정 간격의 정수 리스트 반환 (= range함수 =…
functions Jinja - lipsum() 함수 - 로렘입섬(= 의미없는 채우기용 문자열) (=lipsum함수 = 립섬함…
functions Jinja - dict() 함수 ★ - 딕트 리터럴 반환 (= 딕셔너리 반환 = dict함수 = 딕트함수)
functions Jinja - cycler() 함수 ★ - 교대순환 반환 (=cycler함수 = 사이클러함수) ※ cycle…
functions Jinja - joiner() 함수 ★ - 결합구분자 지정 (= 결합문자 지정 = joiner함수 = 조이너…
functions Jinja - namespace() 함수 - 속성 할당 가능한 변수 생성 (= namespace함수 = 네임…
structures Jinja - for 반복문 (= for반복문 = 포반복문/포문)
structures Jinja - if 조건문 (= if조건문 = 이프조건문/이프문)
structures Jinja - macro (매크로)
structures Jinja - call (콜블럭) ※ caller함수 = 콜러함수
structures Jinja - filter (필터섹션)
structures Jinja - Assignments (할당) ※ set태그 = 셋태그 ※ namespace (네임스페이스) …
structures Jinja - Block Assignments (블럭 할당)
8/9
목록
찾아주셔서 감사합니다. Since 2012