1.기본 설정(view와 url 설정)
views.py를 통해 만들어진 template을 연결하기 위해서는 다음과 같이 프로젝트와 앱을 만들어놔야한다.
1)django-admin startproejct my_site
해당 명령어를 이용해서 my_site라는 프로젝트를 만든다.
2)python manage.py startapp my_app
해당 명령어를 이용해서 my_app이라는 애플리캐이션을 만든다.
3)my_app에는 urls.py가 없기 때문에 urls.py파일을 만들고 urlpatterns를 통해 view와 연결하고 views.py에는 example_view함수
를 만들어 example.html 파일을 연결시킨다.
마지막으로 프로젝트 레벨의 my_site의 urls.py에 my_app의 url을 연결하여 기본 설정을 마무리한다.
2. 앱 디렉토리 설치 및 연결하기
1)python manage.py migrate
해당 명령어를 통해 settings.py 내부에 설치된 앱을 살펴보고, 필요한 데이터 베이스 테이블을 생성한다.
2)app을 설치하고 연결하기
my_app 애플리케이션 내에는 apps.py라는 파일이 있는데 해당 파일을 확인하면 다음과 같다.
여기서 MyAppConfig를 settigns.py의 INSTALLED_APPS에 등록해줘야한다.
3)python manage.py makemigrations my_app
이렇게 등록한 앱을 Django의 앱과 데이터베이스의 변경사항에 저장하기 위해서 python manage.py makemigrations my_app을 이용해서 저장한다.
4)templates/my_app/example.html
마지막으로 이렇게 연결된 앱을 view에서 사용한 my_app/example.html에 연결하기 위해서 my_app 내부에 templates라는 폴더를 만들고 해당 폴더 내부에 my_app이라는 폴더를 하나 더 만들어 내부에 example.html을 생성해 놓는다. 이렇게 하는 이유는 django의 경우 같은 이름의 파일을 찾아서 가져오는데, templates 내부에 my_app이라는 폴더를 만들어 찾을때 혼동을 피하기 위함이다.
3.템플릿 변수
1)variable.html
기존에 사용하던 example.html과 더불어 variable.html을 생성하고 urls.py에 views.py를 통해 연결한다.
2)my_var 템플릿 변수
views.py를 이용해 variable.html을 연결할때는 다음과 같은 variable_view함수를 이용한다.
여기서 중요한 것은 my_var이라는 템플릿 변수를 사용한 것이다. my_var과 같이 딕셔너리를 이용해서 변수를 선언하고, render에 context로 넘겨주면 variable.html에서 해당 딕셔너리에 들어있는 값을 사용할 수 있다.
다음과 같이 html파일 내에서 중괄후 두번을 이용해서 키 값을 대입해준다면 변수의 값을 사용할 수 있게 된다.
해당 url을 통해 사이트로 접속한다면 다음과 같이 변수를 이용해서 문장을 출력하는 것을 확인할 수 있다.
즉 원하는 변수를 이용해서 html에 직접적으로 나타낼 수 있는 것이다.
4. Filter
필터란 python 스크립트가 아닌 템플릿 측의 변수에 변경사항을 빠르게 저장하도록 해주는 django 템플릿의 수정자이다.
다음과 같이 기존에 가져오던 변수에 | 문자를 입력하고 upper(대문자로 바꾸기), capfist(첫문자만 대문자로)와 같은 필터를 사용한다면 즉각적으로 원하는 변수를 사용자의 입맛에 맞게 변경할 수 있다는 장점이 있다.
5. Tag
태그란 HTML 템플릿 안에서 특별한 기능을 수행하는 장고 문법이다.
{% %} 문법으로 감싸서 사용하고, 변수 출력은 {{ }}를 사용한다.
1)for 루프
다음과 같이 variable_view에서 다음과 같은 my_var라는 변수를 가지고 있다고 가정했을때, for 문을 이용해서 간단하게 리스트에서 변수를 출력할 수 있다.
for루프의 경우 {% for in %}{% endfor %}라는 문법 형태를 가진다. 위의 예시의 경우 some_list에서 변수를 하나씩 가져와서 출력하는 것으로 보면 된다. 주의할 점은 {% endfor %}을 통해서 for문이 언제 끝나는지 알려줘야 한다는 것이다.
'Django Class Review' 카테고리의 다른 글
Django Class Review1(view, URL) (1) | 2025.08.12 |
---|