JavaScript required
We’re sorry, but Coda doesn’t work properly without JavaScript enabled.
Skip to content
Gallery
Django 메뉴얼
Django 메뉴얼
django 구조 + MVC, MVP, MVVM
학생 이메일 생성 방법
JetBrains 학생 라이센스
JetBrains의 Pycharm 설치
Anaconda 설치
Pycharm에서 프로젝트 생성하기
장고 프로젝트 시작!
장고 모델
Django 관리자
장고 Urls
장고 뷰 만들기
HTML 시작하기
장고 QRM (Querysets)
템플릿 동적 데이터
장고 템플릿
CSS - 예쁘게 만들기
템플릿 확장하기
애플리케이션 확장하기
장고 폼
블로그 개선하기
이미지 업로드
동영상 URL 업로드
안전한 웹사이트 만들기
댓글 모델 만들기
깃허브 업로드
파이썬애니웨어(PythonAnywhere)에 배포하기
도메인 만들기
메뉴얼 작성전 읽기
More
Share
Explore
템플릿 동적 데이터
블로그 글은 각각 다른 장소에 조각조각 나눠져있어요.
Post
모델은
models.py
파일에,
post_list
모델은
views.py
파일에 있어요. 그리고 앞으로 템플릿도 추가해야 합니다.
이번 장에서는 콘텐츠(데이터베이스 안에 저장되어 있는 모델)를 가져와 템플릿에 넣어 보여주는 것을 해볼 거에요.
뷰(view)
는 모델과 템플릿을 연결하는 역할을 합니다.
post_list
를
뷰
에서 보여주고 이를 템플릿에 전달하기 위해서는, 모델을 가져와야 합니다.
일반적으로
뷰
가 템플릿에서 모델을 선택하도록 만들어야 합니다.
blog/views.py
파일을 열어봅시다.
post_list
뷰
내용을 봅시다.
blog/views.py
from django.shortcuts import render
def post_list(request):
return render(request, 'blog/post_list.html', {})
models.py
파일에 정의된 모델을 가져올 거에요.
from .models import Post
을 추가하세요.
blog/views.py
from django.shortcuts import render
from .models import Post
from
다음에 있는 마침표(.)는 현재
디렉토리
또는
애플리케이션
을 의미합니다.
동일한 디렉터리 내
views.py
,
models.py
파일이 있기 때문에
. 파일명
(
.py
확장자를 붙이지 않아도)으로 내용을 가져올 수 있습니다.
이제
Post
모델을 불러봅시다.
Post
모델에서 블로그 글을 가져오기 위해서는
쿼리셋(QuerySet)
이 필요합니다.
쿼리셋(QuerySet)
블로그 글 목록을 살펴봅시다.
글 목록을 게시일
published_date
기준으로 정렬해볼까요? 이미 Django ORM과 QuerySets 장에서 해본 내용이에요.
blog/views.py
Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date')
다음으로
blog/views.py
파일 내
def post_list(request)
함수에 아래 코드 내용을 넣어봅시다.
제일 먼저
timezone
모듈을 불러와야하니
from django.utils import timezone
를 추가하는 것을 잊지 마세요.
blog/views.py
from django.shortcuts import render
from django.utils import timezone
from .models import Post
def post_list(request):
posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date')
return render(request, 'blog/post_list.html', {})
아직 안한 부분은
posts
QuerySet을 템플릿 컨텍스트에 전달하는 것입니다.
맨 마지막에 이 부분을 다룰 거에요.
우리는
posts
라는
변수
를 만들고 있어요!
위에 말한 변수는 퀴리셋의 이름입니다.
render
함수에는 매개변수
request
(사용자가 요청하는 모든 것)와 'blog/post_list.html' 템플릿이 있습니다.
{}
이 보일 텐데, 이곳에 템플릿을 사용하기 위해 매개변수를 추가할 거에요. (이 매개변수를
'posts'
라고 할거에요)
{'posts': posts}
이렇게 작성할거에요.
:
이전에 문자열이 와야하고, 작은 따옴표
''
를 양쪽에 붙이는 것을 잊지 마세요.
이제
blog/views.py
코드는 아래 코드처럼 보일 겁니다.
from django.shortcuts import render
from django.utils import timezone
from .models import Post
def post_list(request):
posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date')
return render(request, 'blog/post_list.html', {'posts': posts})
이제 다음장으로 넘어가봐요!
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
Ctrl
P
) instead.