inflearn logo
강의

講義

知識共有

Python Web開発(Flask、SQLAlchemyを使用)

db、モデル2

[db, model2] inflearn 테이블 생성오류시 참고하세요.

255

pink321ryu

投稿した質問数 58

0

안녕하세요.

혹시 저처럼 안되시는 분 참고하시라고 올립니다.

 

강의시점과 현시점이 차이가 나서 그런지

강사님 화면대로 하는데 에러가 나서 구글링을 해보니,

추가로 해줘야 한다고 해서 하고 나시 성공했네요.

[에러화면]

[구글링 참고화면 ]

https://stackoverflow.com/questions/73961938/flask-sqlalchemy-db-create-all-raises-runtimeerror-working-outside-of-applicat

[수정사항]

[성공화면]

** 이후 과정에도

from application import app

app.app_context()가.push()

가 계속 필요하네요.

 

python flask sqlalchemy

回答 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

Flask 애플리케이션에서 app.app_context().push()를 사용하는 것이 필수적인 경우가 있습니다. 특히 데이터베이스와 관련된 작업을 할 때, 애플리케이션 컨텍스트 내에서 해당 작업들이 실행되어야 하기 때문입니다. 작성하신 내용을 보면, Flask의 애플리케이션 컨텍스트가 올바르게 설정되지 않아 RuntimeError가 발생한 것으로 보입니다. 이 문제를 해결하기 위해 with app.app_context(): 블록 안에서 db.create_all()를 호출하여 모델에 기반한 테이블을 생성해야 합니다.

올려주신 이미지와 본문 내용에 따라 Flask-SQLAlchemy가 3.0 버전 이상부터 데이터베이스 엔진과 세션 객체에 접근하기 위해 액티브한 Flask 애플리케이션 컨텍스트가 필요하다는 것을 알 수 있습니다. 따라서, Flask 애플리케이션 컨텍스트 내에서 db.create_all()을 호출하도록 코드를 수정하시어 정상적으로 테이블 생성이 가능해진 것 같습니다.

해당 내용을 참고하시어 향후 개발 과정에서 필요한 부분에 적용하시면 좋을 것 같습니다.

도움이 필요하시면 언제든지 추가 질문을 해주시기 바랍니다. 감사합니다!

작업형 1 유형 부분

0

9

1

수강평 이벤트

0

15

2

작업형 1 (삭제예정, 구 버전)

0

28

2

강의노트는 어디있나요?

0

15

1

노션 학습 자료 권한 요청

0

15

1

수강기간 연장 문의드립니다.

0

20

1

2유형 레이블 인코딩 VS 원핫 인코딩

0

21

3

part2강의 문의사항입니다.

0

18

2

수강기간 연장 문의드립니다.

0

26

1

(등록 웹 페이지 개발 3) relationship등록관련 경고문구

0

287

1

(many to many)에러문구 관련

0

368

1

(one-to-many) admin.users.all() 시 출력화면

0

377

1

use inflearn;

0

313

1

공유 템플릿

0

344

1

run이 작동이 안됩니다ㅠㅠ

0

276

1

서버를 열었을때 404 오류가 납니다

0

277

1

실습 중 질문이 있습니다.

0

555

3

BluePrint 질문입니다.

0

321

1

Project.query.get(1) 질문

0

359

2

db, model2에서 db.create_all()수행시 나타나는 오류입니다..

0

528

1

sql db중에 id 1의 정보가없습니다

0

290

1

relationship 코드위치.

0

167

1

ForeignKey 에러 관련.

0

241

3

Delete가아니고 Update강의가 올라와있네요

0

221

2