이전 강의에 더불어 추적 방지 구문 추가.
/Users/사용자/PycharmProjects/pragmatic/accountapp/__pycache__
/Users/사용자/PycharmProjects/pragmatic/pragmatic/__pycache__
두 파일을 모두 삭제 후 git status 로 삭제 되었음을 확인하였다.

이 후 .gitignore 파일 밑에 __pycache__/ 추가하여 나중에 pycache 가 생겼을때도 다시 추적을 하는 일이 없도록 만들어준다.
HTML - Hyper Text Markup Language

둘의 차이를 말하자면 HTML 을 가져온다는 느낌은 비슷하나 용도가 다르다

왼쪽 그림과 같이 미리 만들어 놓은 html 파일이 있는데 이는 template 처럼 구역을 나누어서 다음과 같이 html 파일을 먼저 만들어놓는다

만들어놓은 html 파일을 바탕으로 이 안에 있는 블럭들이나 그 나머지 내용들을 채워 나가는 형식이다 -> 이떄 extends 구문을 이용해서 html 을 만든다

반대로 include 같은 경우에
만약 우리가 만들고 있는 어떤 html 파일이(왼쪽 그림) 있다고 가정을 하면 거기에다가 조그만한 조각같은것들을 가져와서 블럭 안에 박아 넣는 느낌으로 사용

extends 로 바탕을 만들고 include 로 내용을 채워나가는 느낌

extends 와 include 를 모두 포함한 결과물인 가운데의 것이
요청을 받았을 때 되돌려줄 Reponse View 가 되는것이다.
이것을 만들어보는 실습
루트 pragmatic 폴더 안에 templates 라는 폴더를 만들어 그 안에는 완전 기초가 되는 root html 파일을 만들것이다 -> 이름은 base.html
base.html 폴더가 templates 폴더 안에 있으므로써 accountapp 안에 views.py 에서 응답을 해줄때 템플릿을 가져와서 그 안에다가 내용을 박아 넣을 수 있는 형태로 사용할수있다.
이때 HttpResponse 는 response 를 view 에서 직접 만들어서 되돌려주는 형태인데 그게 아니라 존재하는 html 파일 그러니까 템플릿을 가지고 와서 그 안에다가 내용을 채워넣어주는 형식으로 응답을 만들어볼것이다.
HttpResponse 가 아니라 다음과 같이 작성.
def hello_world(request):
첫번쨰 인자로는 request 를 넘겨주고 그 다음으로는 template name 을 적어주어여 한다. 우리 프로젝트에서는 base.html 이다. 이 상태로 서버를 구동 -> python manage.py runserver -> http://127.0.0.1:8000/account/hello_world 이 링크로 들어간다

template 이 존재하지 않는다는 에러가 뜨면서 화면이 표시 되지 않는다.
왜 안되는지..?
root app 인 pragmatic 에서 settings.py 파일을 들어간 뒤 TEMPLATES 라는 리스트의 'DIR' (디렉토리명) 경로들을 입력 해주어야 한다. -> 'DIRS': [os.path.join(BASE_DIR, 'templates')] 라고 적어주고 여기서 templates 는 우리가 만들었던 폴더 이름이다.
장고가 이 templates 가 어디에 있는지 알고서 거기 안에 있는 이 html 파일들을 방금 수정했던 views.py 에서 'base.html' 이랑 연결을 시켜주는것이다.
새로고침을 한 다음에 확인하면

빈 화면인 이유는 지금 base.html 안에 아무것도 없기 떄문에다.
<!-- base.html -->
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
Hello World!
</body>
</html>
다음과 같이 작성하면 우리가 작성한 "Hello World!" 가 출력된다.


git status 결과 new file 인 templates/base.html 이 생겼고 그밖에
수정된 파일 존재 -> git add . -> ```git commit -m "djust Django course 8 commit"