안녕하세요 독학코딩입니다. 오늘은 Django의 MTV, model, views, templates 구조의 마지막 templates를 만드는 방법에 대해서 배워보겠습니다. 혹시 이전 포스팅에서 배운 model과 views를 만드는 방법에 대해서 잘 모르신 다면 아래의 링크를 참고하시면 됩니다.
Django templates 만들기
먼저 이전에 python manage.py startspp 앱이름
을 통해서 생성한 app의 폴더 안에 templates 폴더를 생성해야 합니다.
그 이후에 templates 폴더 안에 생성한 app과 똑같은 이름의 폴더를 하나 더 만들고 post_list.html
파일을 하나 만드시면 됩니다.
저의 경우엔 생성한 app의 이름이 blog 이기 때문에 blog/templates/blog/post_list.html
을 생성했습니다. 각자가 생성한 app 이름에 맞게 폴더를 생성해주세요.
여기서 유의하실 점은 post_list.html
의 이름은 모델의 이름을 따른다는 점입니다. 이전 포스팅에서 생성한 모델의 이름이 class
Post(models.Model)
이기 때문에 해당 모델의 templates 파일의 이름은 post_list.html
이 되는 것입니다. 만약 모델이 이름이 class
Book(models.Model)
이었다면 templates 파일의 이름도 book_list.html
이 될것입니다. templates에는 모델이름_list.html
만 있는 것은 아닙니다. 이후에 진행하면서 한 개씩 알아가겠습니다.
이제 post_list.html
파일에 들어와 주세요.
Django 모델 리스트 파일 만들기
{% for object in object_list %}
<h3>{{ object.title }}</h3>
<p>{{ object.created_date }} by {{ object.author }}</p>
<p>{{ object.content }}</p>
{% endfor %}
post_list.html
파일 안에 위와 같이 적어주세요. 이해하기 어려우시겠지만 하나씩 설명드리겠습니다.
{% for object in object_list %}
{% endfor %}
Django html 파일에서 for문을 사용하기 위해서는 python과는 조금 다른 방식을 이용해야 합니다. {% for i in A_list %}
를 통해서 for문을 시작하고 {% endfor %}
를 통해서 for문의 끝을 명시하여야 합니다. for문 안에서는 {{ object.title }}
처럼 {{ }}
를 통해서 for문 변수에 접근 가능합니다. title, created_date, author, content 같은 경우는 model안에서 정의된 변수입니다.
혹시 작성 포스트가 아래와 같이 나와서 불편하시다면 링크를 통해 수정 방법을 확인해보시기 바랍니다.
포스트 추가까지 완료하셨다면 이제 127.0.0.1:8000/blog/
로 가서 우리가 만든 웹사이트를 확인해봐야겠죠??
127.0.0.1:8000/blog/
에 가보시면 위와 같은 화면을 보실 수 있으실 겁니다.
{% for object in object_list %}
<h3>{{ object.title }}</h3>
<p>{{ object.created_date }} by {{ object.author }}</p>
<p>{{ object.content }}</p>
{% endfor %}
우리는 작성한 코드처럼 포스트 제목, 생성날짜와 생성자, 글 내용 순으로 반복되면서 웹사이트가 만들어졌습니다. 축하드립니다. 이제 Django의 기본적인 MTV 구조에 대해서 전부 배우셨습니다. 앞으로는 이 MTV 구조를 반복하면서 만들어 우리가 원하는 웹사이트를 만들어낸 과정입니다. 다음 포스트에선 위 웹사이트를 조금 더 이쁘게 보이는 방법에 대해서 배워보겠습니다.
댓글