22.01.15 PyQt5와 sqlite3의 첫 연동

Saparian·2022년 1월 15일
0

오늘의배움

목록 보기
7/53

이거를 어디서부터 정리를 해야할 것인가....

오늘 공부한 내용을 다 정리하기에는 힘들 것 같다.

그래도 핵심적인 내용 몇가지만 정리하자.

오늘 한 것

  • QStandardItemModel와 DB에 데이터 입력하기

여기까지만 해도 사실 생각보다 어려웠다.
강좌에는 mysql을 사용하고, 나는 sqlite3로 변형해서 공부해보자는 생각에 쿼리문을 부분부분 수정하면서 진행하다가 한참동안 피를 봤다.

문제가 됐던 부분은 이 부분이다.

try:
    self.cmd = "insert into format (`no`, `name`, `add`) values ({},'{}','{}');"
    .format(self.txt번호.text(), self.txt이름.text(), self.txt주소.text())
    print(self.cmd)
    w.cur.execute(self.cmd)
    w.conn.commit()

테이블명도 다르게 지정을 해둬서 수정하는데 시간이 들었고, 무엇보다 저 `` 표시가 있어야만한다는게 나를 한참동안 고생시켰다.
분명 sqlite3 공식문서에는 없는 내용이었는데... (내가 못찾은 것일 수 도 있다.)

아무튼 `` 마크를 없이 오류가 안되는 이유를 찾아보려고 이것저것 시도를 해보게됐다.

  1. try / except 문의 사용법을 다시 찾아보고, 위 코드 한줄씩 try/except를 사용해서 어디에서 에러가 나는지 찾아볼 수 있었다.
try :
    w.cur.execute(self.cmd)
except:
	print("error")

이런 식으로 코드를 하나하나씩 확인해가며 어느쪽이 문제인지 확인해볼 수 있었다.

  1. 전역변수 / 지역변수의 의미를 조금 알게됐다.
    파일 전체에서 사용되는 변수를 전역변수, class 또는 def문 내에서만 사용할 수 있는 변수를 지역변수라고 한다.

에러 하나나면 해결하느라 진짜 이것저것 알아보게되는 것 같다.
때문에 천천히 배워나가는 것 같다.

PyQt5 강의는 잠시 멈춰두고, 인프런 강의로 다시 시작해보려고 한다.
인프런 강의로 바꾸는 이유는 간단하다.
진도관리가 명확하게 될 것 같아서이다.

오늘 내용은 여기까지 정리한다.

0개의 댓글