로그
더보기
❌ 데이터베이스 오류 발생:
Textual SQL expression 'SELECT id, question, expl...' should be expllared as text('SELECT id, question, expl...')
서버오류
데이터 베이스 쿼리 실행에서 문제발생
SQLAlchemy에서 발생하는 오류
db.execute()를 사용할 때 SQLAlchemy의 텍스트 표현식을 명시 적으로 지정해야 하는 경우
(SQL문이 일반 문자열로 처리돼 문제가 발생할 수 있음)
기존 코드
@router.get("/quiz")
def get_quiz_data(user: dict = Depends(get_current_user), db: Session = Depends(get_db)):
"""
JWT 토큰을 검증한 후, 데이터베이스에서 퀴즈 목록을 가져옴.
"""
if not user:
raise HTTPException(status_code=401, detail="로그인이 필요한 서비스입니다.")
try:
quizzes = db.execute("SELECT id, question, explanation, answer FROM quizzes").fetchall()
quiz_list = [{"id": q[0], "question": q[1], "explanation": q[2], "answer": q[3]} for q in quizzes]
return {"message": "퀴즈 데이터 조회 성공", "data": quiz_list}
except Exception as e:
print(f"❌ 데이터베이스 오류 발생: {str(e)}")
raise HTTPException(status_code=500, detail=f"데이터베이스 오류: {str(e)}")
수정 코드
@router.get("/quiz")
def get_quiz_data(user: dict = Depends(get_current_user), db: Session = Depends(get_db)):
"""
JWT 토큰을 검증한 후, 데이터베이스에서 퀴즈 목록을 가져옴.
"""
if not user:
raise HTTPException(status_code=401, detail="로그인이 필요한 서비스입니다.")
try:
quizzes = db.execute(text("SELECT id, question, explanation, answer FROM quizzes")).fetchall()
quiz_list = [{"id": q[0], "question": q[1], "explanation": q[2], "answer": q[3]} for q in quizzes]
return {"message": "퀴즈 데이터 조회 성공", "data": quiz_list}
except Exception as e:
print(f"❌ 데이터베이스 오류 발생: {str(e)}")
raise HTTPException(status_code=500, detail=f"데이터베이스 오류: {str(e)}")