반응형
파이썬에서 파일 db 로 간단히 사용할 수 있는 SQLite3
대부분 가벼운 쿼리로 처리를 하기 때문에 쿼리문을 직접 찾아 볼 때가 많지는 않지만
쿼리문을 동적으로 생성할 경우 실제 SQLite 에서 실행되는 쿼리문은
어떤것일 까 확인 할 상황이 가끔 있습니다.
그런 디버깅 시에 쉽게 쿼리문을 print 해서 확인할 수 있는 방법입니다.
<예시> set_trace_callback(print)
import sqlite3
con = sqlite3.connect(':memory:')
con.set_trace_callback(print) # <-- 각 SQL 호출마다 SQL문을 print 처리 함
cur = con.cursor()
# 테이블 생성
cur.execute('''CREATE TABLE stocks
(date text, trans text, symbol text, qty real, price real)''')
# 데이터 Insert
cur.execute("INSERT INTO stocks VALUES ('2006-01-05','BUY','RHAT',100,35.14)")
con.commit()
# 데이터 조회
symbol = 'RHAT'
cur.execute("SELECT * FROM stocks WHERE symbol = '%s'" % symbol)
# 조회 결과 출력
print(cur.fetchall())
con.close()
3번째 라인
con.set_trace_callback(print)
이 처럼 코드 한줄을 추가해주시면 됩니다.
즉, connect 객체 set_trace_callback 를 이용하여 print 함수를 전달합니다.
이렇게 하면 SQLite3 에 쿼리문이 전달되고 실행될 때 마다 해당 내용을 출력하게 됩니다.
<결과>
CREATE TABLE stocks
(date text, trans text, symbol text, qty real, price real)
BEGIN
INSERT INTO stocks VALUES ('2006-01-05','BUY','RHAT',100,35.14)
COMMIT
SELECT * FROM stocks WHERE symbol = 'RHAT'
[('2006-01-05', 'BUY', 'RHAT', 100.0, 35.14)]
실제 수행되는 쿼리문이 화면에 출력됩니다.
간단하죠?
즐겁고 행복한 개발 하세요. 😄
반응형
'IT > Python' 카테고리의 다른 글
Python 오류 메시지의 가독성을 높이자! pretty_errors (0) | 2024.04.01 |
---|---|
Windows 환경에서 pip 쉽게 설치하기 (0) | 2023.06.06 |
파이썬 설치된 패키지의 의존성을 트리로 확인해보자 (0) | 2020.10.13 |
파이썬 설치된 모든 패키지 한번에 제거하기 (재설치 하기) (0) | 2020.04.02 |
Python 출력 text의 color를 변경해 보자 (2) | 2020.03.25 |
댓글