작성
·
114
·
수정됨
0
안녕하세요.
혹시 저처럼 안되시는 분 참고하시라고 올립니다.
강의시점과 현시점이 차이가 나서 그런지
강사님 화면대로 하는데 에러가 나서 구글링을 해보니,
추가로 해줘야 한다고 해서 하고 나시 성공했네요.
[에러화면]
[구글링 참고화면 ]
[수정사항]
[성공화면]
** 이후 과정에도
from application import app
app.app_context()가.push()
가 계속 필요하네요.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
Flask 애플리케이션에서 app.app_context().push()
를 사용하는 것이 필수적인 경우가 있습니다. 특히 데이터베이스와 관련된 작업을 할 때, 애플리케이션 컨텍스트 내에서 해당 작업들이 실행되어야 하기 때문입니다. 작성하신 내용을 보면, Flask의 애플리케이션 컨텍스트가 올바르게 설정되지 않아 RuntimeError
가 발생한 것으로 보입니다. 이 문제를 해결하기 위해 with app.app_context():
블록 안에서 db.create_all()
를 호출하여 모델에 기반한 테이블을 생성해야 합니다.
올려주신 이미지와 본문 내용에 따라 Flask-SQLAlchemy가 3.0 버전 이상부터 데이터베이스 엔진과 세션 객체에 접근하기 위해 액티브한 Flask 애플리케이션 컨텍스트가 필요하다는 것을 알 수 있습니다. 따라서, Flask 애플리케이션 컨텍스트 내에서 db.create_all()
을 호출하도록 코드를 수정하시어 정상적으로 테이블 생성이 가능해진 것 같습니다.
해당 내용을 참고하시어 향후 개발 과정에서 필요한 부분에 적용하시면 좋을 것 같습니다.
도움이 필요하시면 언제든지 추가 질문을 해주시기 바랍니다. 감사합니다!