인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

hyun4025ji님의 프로필 이미지
hyun4025ji

작성한 질문수

작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지

8강 장고 Template의 extends, include 구문과 render 함수의 8분부분 질문드립니다.

작성

·

238

0

안녕하세요.  지금 강의를 다시본지 3번째인 것 같습니다.

이제 장고가 대충 어떤 느낌인진 알것같으나, 스스로 프로젝트를 처음부터 끝까지 만들라고하면 어떻게 해야할 지 막막해 강의를 3번째로 보게되었습니다.          강의를 듣던 중 8강의 8분정도에서 설명하신 pragmatic의 setting.py의 TEMPLATES에서 DIRS에 os.path.join(BASE_DIR, 'templates')가 구체적으로 어떻게 작동하는지 잘 모르겠습니다.

DIRS에 경로를 입력해주어야 한다라고 말씀하셨는데 보통 이DIRS의 [] 사이에는 무엇을 하기위해 주로 코드를 작성하나요?

os.path.join(BASE_DIR, 'templates')란 코드가 무슨 의미인지, 여기서 BASE_DIR는 무엇인가요? 

'templates'만 적었음에도 accountapp의 view.py에서 base.html을 적으면 연결을 시켜준다고 하셨는데 이 부분이..이해가 되지 않습니다....

답변 1

0

Hyong Sok Park님의 프로필 이미지
Hyong Sok Park
지식공유자

안녕하세요!
질문 확인했습니다.

일단 BASE_DIR 가 무엇인지 확인을 하셔야 할것 같습니다.

이 변수는 settings.py 내부에 선언되어있습니다.

여기서 개략적으로 코드를 보게 되면,
Path(__file__).resolve() 여기까지가 이 settings.py 파일의 경로입니다.

그리고 이후 parent 가 두번이 나오죠?
settings.py 파일의 두번째 부모경로가 이 BASE_DIR 이라는 변수가 가지는 값입니다.

기본적으로 생성되었을때,
프로젝트 최상위 폴더가 BASE_DIR 가 되는거죠.

그리고 나서 

os.path.join(BASE_DIR, 'templates')

코드를 보게 되면,
os 라는 것은 운영체제 관련 python 모듈이고,
os.path 라는 것은 그중에서도 운영체제 내 경로 관련한 모듈이라는 것이고,
os.path.join 이라는 것은 그 중에서도 join, 합치는 메서드라는 것입니다.

무엇을 합치는가?
라고 물었을때, join 메서드 안에 넣은 값들을 모두 합쳐 하나의 운영체제 상 경로로 되돌려주는 메서드입니다.

그렇다면 다시 보겠습니다.

os.path.join(BASE_DIR, 'templates')

이는 최상위 프로젝트 폴더 안에 있는 templates 라는 이름을 가진 폴더를,

템플릿이 들어있는 경로로 인식하겠다고 명시하는 작업입니다.


답변이 도움이 되셨을까요?
궁금증이 해결되지 않으셨다면 계속 질문 남겨주시길 바랍니다.

좋은하루 보내시구요!
감사합니다-

hyun4025ji님의 프로필 이미지
hyun4025ji

작성한 질문수

질문하기