728x90
반응형
이제 사용자에게 보여지는 화면을 만들어야 하지 않겠니?!
그러니 이어서 공부해보자!
10. urls.py에 home.html을 알리고 설계
* urls.py에 정의되어 있는 url들과 요청으로 들어온 url이 일치한지 URLconf를 통해 분석
from blog import views
#앱 폴더 내의 views를 import
urlpatterns = [
path('admin/', admin.site.urls),
path('', views.home, name="home")
]
* urlpatterns 리스트에 새로운 path 추가
* name은 html 파일 이름과 같게 해준다. (home.html이라고 지을 것)
* 127.0.0.1:8000 접속 시에 home.html 보여줄 것
11. view.py
* URLconf에 맞는 요청이 들어오면 view가 home.html을 return해줌
** view는 model에 저장되어 있는 글(data)을 html에 어떻게 띄울 것인지 고민함
from .models import Blog
def home(request):
return render(request, 'home.html', {'blogs':blogs})
#render : 렌더링을 수행해주는 함수 : 템플릿 코드를 템플릿 파일로 해석하는 과정
12. blog app 안에 templates 폴더 만들기 - home.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>home</title>
</head>
<body>
<h1>Homepage 입니다.</h1>
</body>
</html>
13. views.py에서 데이터 받아오기
from .models import Blog
def home(request):
blogs = Blog.objects
#blog 모델 안의 데이터를 blogs라는 변수에 넣어주기
return render(request, 'home.html', {'blogs':blogs})
#render : 렌더링을 수행해주는 함수 : 템플릿 코드를 템플릿 파일로 해석하는 과정
#{} 안의 내용 : blogs 자료를 가져올 때 blogs라는 이름으로 가져온다는 뜻
14. home.html에서 변수 받아오기
* template 문법을 사용
* 쿼리셋을 이용하여 객체의 속성만 가져올 것
<body>
<h1>Homepage 입니다.</h1>
{% for blog in blogs.all %}
<div class="container">
<h1>{{ blog.title }}</h1>
<p>{{ blog.pub_date }}</p>
<p>{{ blog.body }}</p>
</div>
{% endfor %}
</body>
내용이 길어지니 그 다음 detail page는 3장에서 쓰겠다!
728x90
반응형
'⭐️ 개발 > Web' 카테고리의 다른 글
[장고] Blog app - 1:N 댓글 기능 구현하기 (0) | 2020.07.11 |
---|---|
[장고] 장고를 통해 Blog app 생성하는 과정(3) - Detail page (0) | 2020.07.07 |
[장고] 장고를 통해 Blog app 생성하는 과정(1) - Model&Admin (2) | 2020.07.06 |
[장고]Mac OS에 장고 설치하고 가상환경 설정하기 (0) | 2020.07.05 |