Til

Til 24.04.12 Django Template System

dini_dini 2024. 4. 12. 15:35

장고문서를 자주 참고 할것 - 어지간 하면 영어로

 

DTL - Django Template Language - 파이썬이 동작하는것이 아님

: 변수 필터 태그 주석

{{변수}}

{% tag %}

 

html

모든 태그는  {{ tags.0|upper }} -> tags 라는 바구니 0번째 텍스트를 대문자로

 

 

전에 넷플 프로젝트에서 불편했던점

html은 자꾸 늘어나는데 

중복되는 코드들이 넘많았음

(ex :  헤더나 푸터 등등)

base.html을 쓰면 됨

 

{% extends 'base.html' %}

로 html을 시작해주면 됨

 

base.html

{% comment %} base.html {% endcomment %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    {% block content %}
    {% endblock content %}
</body>
</html>

 

-> 하위 템플릿에 상속 ㄱㄱ

 

- extends 태그로 상속할 상위템플릿 지정

- block 태그로 달라진 부분만 표시한다

 

<!-- users.html-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>Hi there~!!!!!</h1>
    <div>welcome~~~</div>
</body>
</html>

위의 기존의 템플릿을

 

새롭게 쓴 uses.html
{% extends "base.html" %}

{% block content %}
    <h1>Hi there~!!!!!</h1>
    <div>welcome~~~</div>
{% endblock content %}

 

이렇게만 해도 화면이 잘 나옴

 

==>> 훨씬 깔끟라게 할수있을것같음

 

base.html을 밖에 있는템플릿으로 뺏을때

 

settings.py에서 TEMPLATES부분의

 

"DIRS": [BASE_DIR/ "templates"]로 수정 ㅇㅇ

베이스 디렉토리 아래있는 템플릿폴더를 뒤져서 찾아줘라는 뜻

 

BASE_DIR = Path(__file__).resolve().parent.parent

세팅스피와이 파일 상단에 일케쓰여있음

=>세팅파일의 부모폴더의 부모폴더를 베이스 디렉토리로 지정한다는뜻