템플릿 필터 직접 만들기
책 '점프 투 플라스크'를 공부하면서 정리한 내용입니다.
출처 : https://wikidocs.net/book/4542
작성일시에 직접 만든 필터 적용
1. 질문 목록 페이지에서 작성일시 확인
작성일시의 날짯값은 datetime 객체. 현재 질문 목록 페이지의 템플릿에서는 datetime 객체를 문자열로 표시했으므로 ‘2020-06-15 14:03:26.769051’과 같은 값으로 표시됨.
2. date 객체를 보기 편한 문자열로 만드는 템플릿 필터 만들기
pybo/filter.py 파일을 새로 만들고 format_datetime 함수를 추가
def format_datetime(value, fmt='%Y년 %m월 %d일 %H:%M'):
return value.strftime(fmt)
format_datetime 함수
첫 번째 매개변수 value : 전달받은 datetime 객체
두 번째 매개변수 : 전달받은 datetime 객체 value를 두 번째 매개변수 날짜 형식으로 변환
- fmt에 기본 값으로 '%Y년 %m월 %d일 %H:%M'을 지정해서 fmt에 아무 값도 넘어오지 않을 경우 기본 처리
3. 필터 등록
__init__.py 파일 create_app 함수 수정
format_datetime 함수 import 후 datetime이라는 이름으로 필터를 등록
# 필터
from .filter import format_datetime
app.jinja_env.filters['datetime'] = format_datetime
4. 필터 사용
질문 목록 조회 화면(question_list.html)에 적용
<td>{{ question.create_date|datetime }}</td>
파이프라인 문자와 함꼐 datetime 필터 적용. 이때 format_datetime의 매개변수 value에 question.create_date가 전달된다.
5. 질문 상세 조회 화면 필터 적용
question_detail.html 수정
{{ question.create_date|datetime }}
<!-- 생략 -->
{{ answer.create_date|datetime }}
빌트인(built-in) : 라이브러리나 프레임워크에서 미리 만들어 제공하는 함수
플라스크 빌트인 필터 공식 문서: jinja.palletsprojects.com/en/2.11.x/templates/#builtin-filters
Author And Source
이 문제에 관하여(템플릿 필터 직접 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jusung-c/템플릿-필터-직접-만들기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)