진행상황 : djangoMaster 프로젝트 생성
# settings.py
import os
...
TEMPLATES = [
'DIRS': [os.path.join(BASE_DIR, '[디렉토리 이름]', 'templates')],
]
코드를 추가해준다.
현재 디렉토리는 djangoMaster이므로
TEMPLATES = [
'DIRS': [os.path.join(BASE_DIR, '[디렉토리 이름]', 'templates')],
라고 코드를 추가하면
C:/......./djangoMaster까지의 경로를 BASE_DIR에 저장한다는 것이다. 따라서 뒤에 views.py에서 경로를 입력할 때 앞에 자세한 경로를 생략하고 main.html
라고만 적으면 자동으로 djangoMaster에서 templates폴더를 찾아서 그 안에 main.html을 실행한다.
따라서 추가하지 않으면 templates 폴더를 찾을 수 없다.
djangoMaster>templates>main.html 만들기
<h1>앱 사용하지 않고 main.html 띄우기</h1>
라고 작성한다.
djangoMaster>views.py 파일을 생성한다.
# views.py
from django.shortcuts import render
def main(request):
return render(request, 'main.html')
# urls.py
from . import views # 모든 경로에서 views를 가져온다.
urlpatterns = [
path('admin/', admin.site.urls),
path('', views.main), # views.py의 main함수를 의미한다.
]
라고 쓸 수 있다. 다른 방법으로는
# urls.py
from .views import main # 루트 디렉토리의 views에서 main함수를 가져온다.
# 여기서 디렉토리는 djangoMaster
# 따라서 djangoMaster>views.py에서 main을 가져온다.
urlpatterns = [
path('admin/', admin.site.urls),
path('', main), # views.py의 main함수를 의미한다.
]
경로가 많아지면 path에 views.
을 계속 쓰는 것이 번거롭다.
# urls.py
from .views import * # 루트 디렉토리의 views에서 모든 함수를 가져온다.
# djangoMaster>views.py에서 모든 함수를 가져온다.
urlpatterns = [
path('admin/', admin.site.urls),
path('', main), # views.py의 main함수를 의미한다.
]
이렇게 쓰면 모든 함수를 views
에서 불러온다는 의미이다.
http://127.0.0.1:8000에 접속하면
main.html이 잘 실행되었다.
웹 브라우저 주소창에 url이 입력되면
-> urls.py에 가서 함수 이름을 확인하고, views.py의 해당 함수를 호출한다.
-> views.py에서 해당 함수를 실행하여 함수 실행 결과를 웹 브라우저에 전달한다.