파비의 매일매일 공부기록

Two Scoops of Django - #13장 본문

Study/Python

Two Scoops of Django - #13장

fabichoi 2021. 6. 14. 23:30

이번장은 템플릿의 모범적인 이용에 대한 내용이다.

나는 요즘 템플릿을 거의 안 쓰기 때문에 (가끔 씀) 훑고 지나갈까 한다.

심지어 페이지 수도 꽤 많다. 아마 예제 코드가 많아서일 듯?

 

초기 장고 디자인의 방향은 템플릿 언어 기능에 많은 제약을 두는 것이었다.

아무래도 템플릿 언어 기능이 많아지면, py가 아닌 템플릿에서 모든 로직이 이뤄질 수도 있기 때문일 것 같다.

 

1. 대부분의 템플릿은 templates/에 넣어 두자 : 내부에 앱 별로 sub 디렉터리를 활용해서 구성하라.

 

2. 템플릿 아키텍처 패턴 : 2중, 3중 템플릿 형태로 구성. 수평구조가 중첩된 구조보다 좋음.

 

3. 템플릿에서 프로세싱 제한 : 템플릿 상에서 쿼리 셋을 가지고 iteration을 하지 않는 방향으로 로직 구성. 템플릿 상에서 조건문으로 하는 필터링 유의. 템플릿상에서 복잡하게 얽힌 쿼리들 유의. 템플릿에서 생기는 CPU 부하 유의. 템플릿에서 숨겨진 REST API 호출 자제.

 

4. HTML 코드 정돈에 너무 신경 쓰지 말 것

 

5. 템플릿의 상속 활용 : 이건 생각보다 자주 썼던 것 같다. {% load %}, {% block %}, {% static %}를 잘 활용하면 재활용성을 높일 수 있다.

 

6. 강력한 기능의 block.super를 활용 : 오버 라이딩 활용 및 미활용을 적용할 수 있다.

 

7. 그 외 : 파이썬 코드와 스타일을 긴밀하게 연결하지 않을 것. 아래의 스타일 관례들을 활용할 것(추천)

 - 템플릿 이름, 블록 이름, 그리고 템플릿에서 이용되는 여러 이름에 대시(-)보다는 밑줄(_)을 선호.

 - 직관적이고 명확한 블록 이름 이용. 예) {% block javascript %}

 - 블록의 맺음으로 블록의 이름을 포함. 예) {% endblock %}이 아닌 {% endblock javascript %}

 - 다른 템플릿으로부터 호출되는 템플릿의 이름은 밑줄(_)을 접두어로 선정.

템플릿의 위치를 적절히 선정할 것. 콘텍스트 객체에 모델의 이름을 붙여 이용. 하드 코딩된 경로 대신 URL 이름 이용({% url 'flavors_list' %}). 복잡한 템플릿 디버깅.

 

8. 에러 페이지 템플릿 : 에러 페이지(404, 500 등)에 대한 템플릿도 구성하는 것을 추천.

 

9. 미니멀리스트 접근법을 따를 것 : 최대한 재사용 가능하도록 구성할 것.

반응형

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

Two Scoops of Django - #15장  (0) 2021.06.16
Two Scoops of Django - #14장  (0) 2021.06.15
Two Scoops of Django - #12장  (0) 2021.06.13
Two Scoops of Django - #11장  (0) 2021.06.12
Two Scoops of Django - #10장  (0) 2021.06.11
Comments