[Django] 질문 목록과 질문 상세 기능 구현하기

유포도·2022년 9월 29일
0

Django

목록 보기
4/4

질문 목록 조회 구현

pybo에 접속하면 질문을 모두 조회할 수 있는 기능

from django.shortcuts import render
from django.http import HttpResponse
from .models import Question

def index(request):
    '''
    pybo 목록 출력
    '''
    question_list = Question.objects.order_by('-create_date')
    context = {'question_list': question_list}
    return HttpResponse("안녕하세요 Pybo에 오신것을 환영합니다.")

Question모델을 임포트해 Question모델을 작성한 날짜의 역순으로 조회하기 위해 order_by 함수 사용 (-기호를 앞에 붙이면 역순)

조회한 Question 모델 데이터는 context 변수에 저장

render로 화면 출력하기

from django.shortcuts import render
from django.http import HttpResponse
from .models import Question

# Create your views here.
def index(request):
    '''
    pybo 목록 출력
    '''
    question_list = Question.objects.order_by('-create_date')
    context = {'question_list': question_list}
    return render(request, 'pybo/question_list.html', context)

render 함수는 context에 있는 Question모델 데이터 question_list를 pybo/question_list.html 파일에 적용하여 HTML코드로 변환한다. 장고에서는 이런파일 (question_list.html)을 템플릿이라 부른다.

템플릿을 모아 저장할 디렉터리 생성

(mysite) yujihyeon@yujihyeon-ui-MacBookAir mysite % mkdir templates

템플릿 디렉터리를 장고 config/settings.py 에 등록하자. TEMPLATES 항목을 아래와 같이 수정한다.

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR / 'templates'],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

DIRS에는 템플릿 디렉터리를 여러개 등록할 수 있다. 다만 우리가 개발하는 파이보는 1개의 템플릿 디렉터리를 쓸 것이므로 1개만 등록한다.
BASE_DIR은 ~/DjangoProjects/mysite이므로 templates만 더 붙여 반환한다.

profile
클라우드 학원 다니는즁,,,

0개의 댓글