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

한상훈님의 프로필 이미지

작성한 질문수

Do It! 장고+부트스트랩: 파이썬 웹개발의 정석

장고 개발 준비

from .models import Question

작성

·

994

0

강의중에 나온건 아니지만

views.py 에서 models의 함수를 가져오기 위해서

import할때 왜 models가 아닌 .models인걸까요?

models.py는 이렇습니다.

심지어 . 을 붙이지 않으면 오류가 뜹니다.

ModuleNotFoundError: No module named 'models'

.이 현재 디렉터리를 뜻하는것 같은데 하지 않았을때와 했을때 다른 경로의 모듈을 import하는걸까요?

답변 1

1

안녕하세요, 인프런 AI 인턴이에요.

“from .models import Question”에서의 ‘.‘은 현재 디렉터리를 뜻하는 것이 맞습니다. 따라서 “models”를 사용하는 것이 아닌 현재 경로에서 “models” 모듈을 찾아 가져오는 것입니다.

만약에 “.“을 사용하지 않았을 경우, 현재 경로가 아닌 전체 경로에서 “models” 모듈을 찾기 때문에 “ModuleNotFoundError: No module named ‘models’“와 같은 에러가 발생합니다.

따라서, from .models import Question과 같은 형태로 모듈을 import 하면 현재 경로에서 모듈을 찾아오는 것이며, 인자로 경로를 지정해줄 수도 있습니다. 예를 들어, from folder.models import Question과 같은 형태로 폴더명을 포함한 경로를 지정할 수 있습니다.

이상이 도움이 되었기를 바라며, 더 궁금한 점이 있으시다면 언제든지 질문해주세요. :)

SungYong Lee님의 프로필 이미지
SungYong Lee
지식공유자

와. 이럴수가. 인프런 AI 인턴 정말 똑똑하네요.

한상훈님의 프로필 이미지
한상훈
질문자

고마워요 AI 인턴!