Custom Filters
Jinja에서는 일반적으로 변수 값을 수정하기 위하여 filter를 사용한다.
{{ num | round }}
이 경우 num 변수에 대해 round 를 수행한다. 예를 들어 num=46.99 일경우 47.0을 표시 한다.
Jinja에서는 일반적으로 많이 사용하는 필터를 등록해 놓았다. (List of Builtin Filters)
이제 원하는 Filter를 추가해보자.
예제로 datetime을 표시하는 filter를 추가해 보자.
@app.template_filter()
def datetimefilter(value, format='%Y%m%d %H:%M')
""" convert a datetime to a ditterent format. """
return value.strftime(format)
app.jinja_env.filters['datetimefilter'] = datetimefilter
@app.template_filter() 데코레이터를 사용하여 datetimefilter() 함수를 등록 한다.
- 기본적으로 filter의 이름은 함수의 이름으로 사용되지만 바꾸고 싶다면 다음과 같이 데코레이터에 argument 값으로 넣어주면 된다.
@app.template_filter(formatdate)
작성이 다 되었으면 이제 현재 시간을 넘겨주는 변수를 만들고 그 값을 넘겨 주면 된다.
// test.py
current_time = datetime.datetime.now()
// template
<h4> Current date/time: {{ current_time | datetimefilter }} </h4>
'디지털 양피지 > Flask' 카테고리의 다른 글
Flask - Web Form (0) | 2015.12.18 |
---|---|
Flask - Custom Error Pages / Links / Static Files /Time (0) | 2015.12.18 |
Flask - Twitter Bootstrap Integration with Flask-Bootstrap (0) | 2015.12.17 |
Flask - Template (0) | 2015.12.17 |
Flask - Basic Application Structure (0) | 2015.12.16 |