ImportError: cannot import name 'db' from partially initialized module 'api' 발생 시 해결

Flask로 API 서버를 구성하면서 flask db init을 하였을 때, 위와 같은 에러가 발생하였다.

원인

Controller.py에서 service를 import하고, service는 model을 import 해오고, model은 db를 import하는데 db는 api.controller를 import하는 circular import 방식 때문이었다.

 

해결방법

아래와 같이 Service안에 필요한 함수 내부로 import 코드를 이동시켜 circular import error를 해결하였다.

적용 후 정상적으로 작동한다.