상황


  • DELETE API를 호출하여 게시글을 삭제하려고 하는데 계속해서 오류가 발생함..
  • 문제점의 원인을 찾아보니 하나의 db 세션이 사용중인 경우에는 사용할수 없다고 함.. 그런데 애초에 여러개의 db 세션을 만든 적이 없는데..?? 해서 찾아봄

문제 원인


  • Market.py와 Models.py에서 서로 import해주는 이유로 생기는 문제로 확인
    • Market.py에 app와 db가 있고 url 라우팅 존재
    • Models.py에 db.model을 상속받는 모델들 존재
  • 따라서, 따로 config.py를 두어서 config에 db와 app를 두고 Models.py와 Market.py가 config에 있는 db와 app를 사용하도록 하면 서로 import해주지 않으므로 문제 해결

Config.py

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///Market.sqlite3'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
db = SQLAlchemy(app)

결론

  • 순환 구조로 import하는걸 지양하자

'프레임워크 > Flask' 카테고리의 다른 글

[ Flask ] 파일 불러오기  (0) 2021.12.24

+ Recent posts