inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

남박사의 파이썬으로 실전 웹사이트 만들기

플라스크 프로젝트를 모듈화 하여 패키징 하기

import 문의 - 폴더위치 및 파일명, 함수명

293

MIKE.aeon

작성한 질문수 53

1

안녕하세요 강사님.

현재 파일구조는 위와 같습니다. 각 파일별 import 규칙이 다른데, 관련하여 문의 드립니다.

run.py - from main import app /  하위폴더인 main 폴더를 찾고, init의 변수명.

init.py - from .common import login_required / 현재폴더의 common 파일을 찾고 거기서 함수명.

                 from .filter import format_datetime / 현재폴더의 filter 파일을 찾고 거기서 함수명.

                 from . import board  / 여기서는 현재폴더의 파일명.

                 from . import member  / 여기서는 현재폴더의 파일명.

board.py - from main import * / 현재폴더명의 모든것.

질문은 아래와 같습니다.

1. init.py - from .common import login_required ==> from . import common 으로 표기해도 되나요?

2. init.py - from . import board ==> from .board import * 으로 표기해도 되나요?

3. board.py - from main import * ==> from . import  __init__ 으로 표기해도 되나요?

4. run.py - from main import app ==> from .main import app 으로 표기해도 되나요?

어떤 경우는 현재폴더의 파일명/함수명, 현재폴더/파일명, 현재폴더명/*, 하위폴더명/하위폴더의__init__의 변수명, 등등, 

from/import의 규칙 및 구조가 궁금해서 문의드립니다.

감사합니다.

python

답변 1

0

남박사

1. init.py - from .common import login_required ==> from . import common 으로 표기해도 되나요?

2. init.py - from . import board ==> from .board import * 으로 표기해도 되나요?

둘중 어떻게 하셔도 상관없으리라 생각됩니다. 다만 사용할때 common. 으로 접근해야 하기 때문에 코드가 많은경우 불필요한 코드를 더 쓰게 되는 부분도 감안해야 할듯 보입니다.

3. board.py - from main import * ==> from . import  __init__ 으로 표기해도 되나요?

__init__ 는 해당 프로젝트가 실행될때 자동으로 초기화 되는 파일이므로 따로 임포트를 하지 않는게 좋습니다. 만약 init에 선언된 내용을 사용해야 한다면 따로 파일을 만들어 관리하는걸 추천합니다.

4. run.py - from main import app ==> from .main import app 으로 표기해도 되나요?

같은 표현이라고 보셔도 상관없습니다.

iis 접속후 자동으로 로그인 창이 나오도록 설정이 기능한가요?

0

64

2

리스트 이동 시 창 에러 발생

0

74

1

배포후 회원 등록 후 로그인 에러...

0

73

2

내부 서버 오류

0

67

2

app.config["MONGO_URI"] = "mongodb://localhost:27017/pm_db"

0

53

2

DB 검색하면 데이터가 없습니다. 라고 나와요. 5시간을 찾아봐도 모르겠어서 문의드려봅니다.

0

44

1

몽고db studio3T를 깔았는데

0

57

2

flake8과 linter

0

72

3

500이 뜹니다.

0

57

2

첨부파일 삭제

0

66

2

검색기능 질문

0

61

2

google.py

0

66

2

Studio 3T에 DB insert가 되지 않는 문제를 해결하지 못하고 있습니다 ㅠ

0

81

3

혹시 전체 코드 공개되어 있나요?

0

96

1

join.html 의 form 태그값 을 member_join() 에서 처리못함.

0

103

1

google.py 몽고db 샘플데이터 만들기

0

99

2

flake8 설치 이후 명령팔레트에서 linter가 안보입니다.

0

236

2

파이썬으로 만들어서 웹호스팅에 올릴경우

0

303

1

현재 구글검색 무한스크롤변경 문의합니다

0

296

1

몽고디비아틀라스로 추가 공부해서 올립니다.

0

217

1

IIS 500.19에러

0

658

2

버전 문제도 수정했는데 결과가 안나옵니다.

0

256

1

데이터베이스 저장관련 질문입니다.

0

269

1

test가 생기지 않습니다.

0

508

3