단순히 하나의 python 파일만 실행하는것이 아닌 여러개의 파일과 그 안의 코드들이 자신들의 역할에 맞게 작동하면서 Application이 작동한다.
이렇게 작동한다는 것 자체가, 서로서로 import를 해주며 엮인다는 뜻이며, 이중 자칫하면 Circular Import문제로 App의 실행이 중단될 수 있다.
Circular Import란?
두개 이상의 python파일이 서로를 import하면서, 서로 불러오는것이 반복되어 결국 무한루프에 빠지게 되는것.
# appdirectory.__init__.py
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
db = SQLAlchemy()
migrate = Migrate()
def create_app(config=None):
app = Flask(__name__)
db.init_app(app)
migrate.init_app(app, db)
from kokoa.routes import main_route
app.register_blueprint(main_route.bp)
return app
if __name__ == "__main__":
app = create_app()
app.run(debug=True)
위와같이 create_app을 통해, app을 실행시키도록하며, flask실행보다 먼저 db와 migrate를 생성하므로, 향후 다른곳에서 appdirectory에서 db 또는 app을 참조할 때 순환임포트 문제가 발생하지 않도록 해준다!