책 '점프 투 플라스크'를 공부하면서 정리한 내용입니다.
출처 : https://wikidocs.net/book/4542
작성일시의 날짯값은 datetime 객체. 현재 질문 목록 페이지의 템플릿에서는 datetime 객체를 문자열로 표시했으므로 ‘2020-06-15 14:03:26.769051’과 같은 값으로 표시됨.
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에 아무 값도 넘어오지 않을 경우 기본 처리
__init__.py 파일 create_app 함수 수정
format_datetime 함수 import 후 datetime이라는 이름으로 필터를 등록
# 필터
from .filter import format_datetime
app.jinja_env.filters['datetime'] = format_datetime
질문 목록 조회 화면(question_list.html)에 적용
<td>{{ question.create_date|datetime }}</td>
파이프라인 문자와 함꼐 datetime 필터 적용. 이때 format_datetime의 매개변수 value에 question.create_date가 전달된다.
question_detail.html 수정
{{ question.create_date|datetime }}
<!-- 생략 -->
{{ answer.create_date|datetime }}
빌트인(built-in) : 라이브러리나 프레임워크에서 미리 만들어 제공하는 함수
플라스크 빌트인 필터 공식 문서: jinja.palletsprojects.com/en/2.11.x/templates/#builtin-filters