Django에서 template을 함수와 렌더링 하기 위해서는 각각의 application에 templates이라는 폴더가 필요하다.
따라서 다음과 같은 순서에 따라 Rendering을 진행함
[rendering]
- templates폴더 만들기(주의!! 복수)
- html만들기
- app/views.py 에서 html연결(rendering), 데이터 html로 보내기(context)
- Django에서 전달받은 context데이터는 html에서 flask와 동일한 방법으로 사용된다(jinja문법)
#---------- room/views.py 수정
from django.http import HttpResponse
from django.shortcuts import render
from rooms.models import Room
def see_all_room(request):
rooms = Room.objects.all() #orm사용해 db의 데이터 모두 가져오기
return render(request, 'all_rooms.html', context={'rooms':rooms},) #all_rooms.html 템플릿 렌더링, 템플릿에 rooms데이터 전달
#---------- room/templates/all_room.html 생성
<h1> all rooms here </h1>
{% for room in rooms %}
<h3>
<a href="/room/{{room.pk}}">{{room.name}}</a>
</h1>
{% for amenity in room.amenities.all %}
<li>{{amenity}}</li>
{% endfor %}
{% endfor %}
'FrameWork > Django' 카테고리의 다른 글
DRF POST & validate & save (1) | 2024.07.18 |
---|---|
DRF(Django Rest Framework) (0) | 2024.07.17 |
URL & views (0) | 2024.07.17 |
ORM (0) | 2024.07.15 |
App Apps (0) | 2024.07.15 |