PyQt 에서 QtSql 을 사용 하여 MySql 데이터 베 이 스 를 연결 하 는 방법
PyQt 를 사용 하여 MySql 에 연결 하여 데 이 터 를 보 여줄 때 모든 데이터베이스 작업 이 Qt 창 과 관련 이 있 고 복잡 한 데이터 작업 과 관련 이 없 음 을 명 확 히 하면 내 장 된 QtSql 클래스 를 사용 할 수 있 습 니 다.추가 데이터베이스 클래스 를 설치 하지 않 아 도 QtTableView 등 Qt 컨트롤 과 데이터 상호작용 을 더욱 편리 하 게 할 수 있 습 니 다.
초기 화
db = QtSql.QSqlDatabase.addDatabase('QMYSQL')
db.setHostName('localhost')
db.setDatabaseName('dev')
db.setUserName('root')
db.setPassword('123')
db.open()
QMYSQL 은 MySql 데이터 베 이 스 를 연결 하 는 것 을 대표 합 니 다.QtSql.QSqlDatabase.drivers()를 통 해 현재 버 전의 PyQt 가 지원 하 는 데이터베이스 형식 을 조회 할 수 있 습 니 다.데이터베이스 연결 을 만 든 후 db 를 장기 적 으로 보유 하지 않 아 도 됩 니 다.연결 은 프로그램 이 닫 히 거나 removeDatabase()를 호출 할 때 까지 계속 존재 합 니 다.
조작 데이터베이스
기본 조회 명령 은 다음 과 같 습 니 다.
query = QSqlQuery()
isSuccess = query.exec("select count(*) from `user`;")
if not isSuccess:
print(query.lastError().text())
if query.next():
count = query.value(0)
검색 대상 만 들 기QSqlQuery 대상 을 만 듭 니 다.추가 인자 가 필요 하지 않 습 니 다.위 에서 초기 화 할 때 연 결 된 데이터베이스 와 database 를 사용 합 니 다.
명령 을 집행 하 다
exec()방법 을 호출 하여 조회 명령 을 실행 합 니 다.매개 변 수 를 조회 문 으로 전달 합 니 다.이 방법 은 검색 이 성 공 했 는 지 여 부 를 표시 하 는 불 값 을 되 돌려 줍 니 다.실패 할 때 lastError().text()를 호출 하여 실패 원인 을 가 져 올 수 있 습 니 다.
조회 데이터 가 져 오기
QSqlQuery 는 next(),prev(),first(),last(),seek()등 을 제공 하여 되 돌아 오 는 기록 에서 내 비게 이 션 을 하여 쉽게 이동 할 수 있 습 니 다.그러나 주의해 야 할 것 은 exec()가 실행 이 끝 난 후에 1 개의 무효 기록 에 위치 하고 효과 적 인 기록 으로 탐색 해 야 데 이 터 를 얻 을 수 있다 는 것 이다.
isValid()를 통 해 현재 잘못된 기록 에 있 는 지 여 부 를 판단 할 수 있 습 니 다.
또한 next(),prev(),first(),last(),seek()등 방법 역시 불 반환 값 이 있 으 며,항로 기록 이 잘못 되 었 을 때 False 로 돌아 가 반환 값 을 통 해 경계 값 을 초과 한 조회 여 부 를 보조 적 으로 판단 할 수 있다.
QtTableView 와 데이터 바 인 딩
데이터 모델 생 성
self.model = QtSql.QSqlTableModel(self)
self.model.setTable('user')
self.model.setEditStrategy(QtSql.QSqlTableModel.OnFieldChange)
self.model.select()
setTable()은 현재 model 과 연 결 된 시 계 를 지정 합 니 다.setEditStrategy()는 수정 모델 을 설정 하 는 것 입 니 다.그 매개 변 수 는 매 거 진 것 으로 모두 3 개의 값 이 있다.
관련 QtTableView
self.tableView.setModel(self.model)
위 에서 만 든 model 을 tableView 에 설정 하면 tableView 에 표 의 데 이 터 를 보 여 줍 니 다.표 시 된 열 이름 은 기본적으로 데이터베이스 에 있 는 표 의 목록 입 니 다.아래 코드 를 통 해 열 이름 을 사용자 정의 할 수 있 습 니 다.
self.model.setHeaderData(0, QtCore.Qt.Horizontal, 'ID')
QSqlTableModel 을 사용 하면 모든 열 을 되 돌려 줍 니 다.보 여주 기 싫 은 열 이 있 으 면 아래 코드 를 통 해 열 을 숨 길 수 있 습 니 다.
self.tableView.setColumnHidden(3, True)
PyQt 에서 QtSql 을 사용 하여 MySql 데이터 베 이 스 를 연결 하 는 방법 에 관 한 글 은 여기까지 입 니 다. QtSql 연결 MySql 내용 은 이전 글 을 검색 하거나 아래 글 을 계속 찾 아 보시 기 바 랍 니 다.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
최강의 PySide/PyQt 개발 환경도 PyCharm이다이라는 기사에서 PyCharm이 얼마나 최강의 개발 환경인지를 소개했다. PySide/pyQt의 개발에서도 역시 PyCharm이 최강이다. QtDesigner를 사용하여 ui 파일을 만드는 경우 수동 또는 반자동으로...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.