- Django 공식 문서 페이지: https://docs.djangoproject.com/en/4.2/
url 경로 설정:
# my_first_pjt/my_first_pjt/urls.py
from django.contrib import admin
from django.urls import path
from articles import views #이부분과
urlpatterns = [
path("admin/", admin.site.urls),
path("index/", views.index), #이부분 추가함
]
- `artilces`폴더안에 있는 `views.py`폴더를 여시고 이 곳에 뷰를 정의
- from articles import views
→ `articles` 의 `views` 모듈을 사용하겠다.
- path("index/", views.index)
→ `index/` 로 요청이 오면 `views.index`로 전달할 것이다.
html파일을 뷰로 사용하기
# my_first_pjt/articles/views.py
from django.shortcuts import render
def index(request):
return render(request, "index.html")
article app 안에 templates 폴더를 만들고 그 안에 index.html 생성
Template 기본 경로
- app_name / templates
Django는 setting.py의 TEMPLATES의 APP_DIRS를 보고 경로를 찾기 때문에 setting.py의 코드를 수정해줘야 함.
Django Template Language (DTL)
Django Template에서 사용하는 문법으로 Python에 익숙할 Django 개발자를 위해 Python과 비슷하게 되어 있지만, Python이 동작하는 것이 아님!
DTL 문법
1. 변수, Variable
- 변수의 기본 형태
{{ variable }}
- view의 context로 넘긴 데이터를 접근할 수 있음
- . 을 사용하여 변수의 속성값에 접근 가능
- render() 의 세번째 인자인 context에 dict 형태로 넘겨진 데이터 중
- key 값이 template에서 사용 가능한 변수가 됨
2. 필터, Filters
- 필터의 기본 형태
{{ variable|filter }}
- 변수에 어떠한 작업을 추가적으로 더해 수정하고 싶을때 사용
- 약 60개의 built-in template filter가 제공되며 일부 필터는 인자를 받기도 함.
- 필터 사용 예시
- view에서 넘겨준 데이터는 "Aiden" 이런식이지만 보여줄때는 소문자로 보이게 하고 싶다면
{{ first_name|lower }}
3. 태그, Tags
- 태그의 기본 형태
{% tag %}
- 반복문 또는 논리, 조건문을 수행하여 제어 흐름을 만들거나 특수한 기능을 수행
- 일부는 시작 태그와 종료 태그가 있음
{% if ~ %}
{% endif %}
4. 주석, Comments
{# 한 줄 주석 #}
{% comment %}
여러줄
주석
{% endcomment %}
예제
이름을 바꾸고 싶다면
- context 넘기기
- 더 많은 데이터 넘기기
Template Inheritance(템플릿 상속): 코드 중복 문제를 해결하기 위해 대표격으로 하나 만듦
문법은 대략
- {% block block_name %} {% endblock block_name %}
- 상위 템플릿에서 하위 템플릿 마다 달라질 부분을 정의
- {% extends 'template_name' %}
- 하위 템플릿에서 상위 템플릿을 상속해서 확장한다는 것
- 템플릿의 가장 최상단에 위치해야함
- 다중상속을 지원하지 않음
- base.html 생성
- 공통적으로 적용될 상위 템플릿
- 하위 템플릿에서 상속
- extends 태그를 이용해서 상속할 상위 템플릿 지정
- block 태그를 이용해서 달라진 부분만 명시
Template 참조 위치: 파일의 위치가 articles 앱 안쪽의 templates에 있는게 불편. 다른 앱에서도 쓰고 싶으면...
커스텀 템플릿 경로 추가하기
- Django가 템플릿을 참조하는 위치는 settings.py에서 결정됨
my_first_pjt 최상단 경로에 templates 디렉토리 생성 (이름은 달라져도 되지만 templates 권장)
위 폴더 아래에 base.html 을 둠
이제 Django가 우리가 새로 생성한 templates 에서도 템플릿을 참조할 수 있게 적어주면 된다
'Django' 카테고리의 다른 글
모델 및 마이그레이션 (0) | 2024.08.14 |
---|---|
url 변수, 앱 분리, Naming URL Patterns(장고) (0) | 2024.08.13 |
Django GET 메서드 기초 (0) | 2024.08.12 |
장고를 이용한 처음 세팅 (0) | 2024.08.08 |
장고(Django) 간단 소개 (0) | 2024.08.08 |