웹 프로그래밍

[pinterest clone (5)] Django template과 Views 연결

728x90
반응형

extends / include

잘 모르겠는데 뭔가 extends로 바탕을 만들고 include로 내용을 채워넣는 느낌인거 같다. 그렇게 해서 이제 양쪽에 extends와 include를 모두 포함한 결과물이 요청을 받았을때 되돌려줄 response view가 된다. 우선 만들어본다.

 

1. platypus/templates 폴더 만들기

2. 밑에 루트가될 base.html 만든다.

* base가 templates 안에 있으므로써 accountapp에서 view.py에서 응답을 해줄때 여기서 template을 가져와서 그 안에 내용을 박아넣을 수 있는 형태로 쓸 수 있다.

3. views.py

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


def hello_world(request):
    return render(request, 'base.html')

이렇게하고 이제 runserver 돌려보면 template이 exist하지 않는다는 error가 나온다.

settings를 만져줘야함.4. settings.pyTEMPLATES에 DIRS 그러니까 경로들을 입력을 해줘야한다. 

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(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': [os.path.join(BASE_DIR, 'templates')], 줘야한다.

 

5. runserver

base.html에 뭐라도 쓰고 http://127.0.0.1:8000/account/hello_world/ 접속해보면 잘 나타난다.

 

 

 

 

728x90
반응형