Django

Django(hello>hello02)[1]

FnMask 2020. 11. 21. 14:48

템플릿을 만들꺼에요

python manage.py startapp hello02

 

hello/setting.py

(13번째줄)
from pathlib import Path
import os

(55번째 줄)
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],

 

 

hello>hello>templates만들기>hello02.html만들기

# vs코드는 html:5 (엔터) 치면 자동으로 완성됩니다.

<h1>Hello, {{name}}!!</h1>
			#플라스크할 때 템플릿을 했었나여? 기억나면 아주아주좋대요

hello02>views.py

from django.shortcuts import render

# Create your views here.
def hello(request):
    return render(request, 'hello02.html', {'name': 'django template'})
		#render=화면에 구현될 것을 그려주는애
        #request 받아서 hello02.html을 그려줄거야
        #데이터가 갈건데 name이 django template인 애가

hello02/urls.py 만들어주세요

from django.urls import path
from . import views
urlpatterns = [
    path('', views.hello),
]

hello02에 urls.py를 만들었습니다.

요청이 들어왔을 때 hello02의 url을 hello02>urls.py가 담담하게 만들고 싶을 때는

hello 가 가진 urls에 설정을 해 줘야 합니다.

 

hello>urls.py

from django.contrib import admin
from django.urls import path, include
from . import views

urlpatterns = [
    path('', views.index),
    path('admin/', admin.site.urls),
    path('hello01/', include('hello01.urls')),
]

실행을 해 보면 TemplateDoesNotExist at /hello02/

라는 페이지가 실행됩니다.

hello>settings.py 를 보면

우리는 BASE_DIR 밑에 'templates'라는 폴더를 만들었습니다. BASE_DIR을 뭘로 잡혔을까요
Path(__현재파일__)의 부모.부모로 잡혀있네요

현재 Path(__file__)은 hello>hello>setting.py입니다.

그러므로 templates 폴더는 hello>hello>templates.py 가 아닌 hello>templates.py에 있어야 합니다.

경로를 바꿔주면 정상작동합니다.

경로를 옮겨주세요
정상작동합니다