파비의 매일매일 공부기록

Two Scoops of Django - #14장 본문

Study/Python

Two Scoops of Django - #14장

fabichoi 2021. 6. 15. 23:30

이번장은 템플릿 태그와 필터에 대한 내용이다.

장고를 처음 학습할 때 이 내용을 주로 살펴보라고 지시받았던 걸로 기억한다.

장고에서 템플릿 태그와 필터의 특징은 다음과 같다.

 - 모든 기본 템플릿과 태그의 이름은 명확하고 직관적

 - 모든 기본 템플릿과 태그는 각각 한 가지 목적만을 수행

 - 기본 템플릿과 태그는 영속 데이터에 변형을 가하지 않음

 

1. 필터는 함수다 : 필터는 하나 또는 두 개의 인자를 받는 함수지, 개발자에게 장고 템플릿의 작동 통제하는 기능을 제공하지는 않는다. 기본적으로 장고 템플릿 안에서 파이썬을 이용할 수 있게 해주는 데코레이터를 가진 함수일 뿐이다.

 - 필터들은 테스트하기 쉽다 : 단지 테스트 함수 작성만으로 테스트를 간단하게 할 수 있다.

 - 필터와 코드 재사용 : 대부분의 필터 로직은 다른 라이브러리로부터 상속되어왔으며 이로 인해 코드의 재사용성이 높다.

 - 언제 필터를 작성해야 하는가 : 외형을 수정하는 데 매우 유용하며 이런 필터들은 REST API와 다른 출력 포맷에서 손쉽게 재사용 가능하다.

2. 커스텀 템플릿 태그 : 너무 많은 템플릿 태그와 필터는 문제를 일으킬 수도 있다.

 - 템플릿 태그들은 디버깅이 어렵다.

 - 템플릿 태그들은 재사용이 어렵다.

 - 템플릿 태그의 성능 문제 : 심각한 성능 문제를 야기할 수 있다.

 - 언제 템플릿 태그를 이용할 것인가 : 

  i. 데이터를 읽고 쓰는 작업을 할 것이라면 모델이나 객체 메서드가 더 나은 장소일 것

  ii. 프로젝트 전반에서 일관된 작명법을 이용하고 있기 때문에 추상화 기반의 클래스 모델을 core.models 모듈에 추가 가능한 상황일 때

 

3. 템플릿 태그 라이브러리 이름의 일반적인 규칙 : <app_name>_tags.py

 

4. 템플릿 태그 모듈 로드하기 : 명시적으로 원하는 태그를 로드 가능

 - 반드시 피해야 할 안티 패턴 : 최대한 명시적으로 사용할 것. add_to_builtins 메서드는 관례적으로 이용하지 말 것

반응형

'Study > Python' 카테고리의 다른 글

Two Scoops of Django - #16장  (0) 2021.06.17
Two Scoops of Django - #15장  (0) 2021.06.16
Two Scoops of Django - #13장  (0) 2021.06.14
Two Scoops of Django - #12장  (0) 2021.06.13
Two Scoops of Django - #11장  (0) 2021.06.12
Comments