개발/Python

pyQT 및 MySQL 또는 MSSQL 연결

MinorMan 2020. 9. 22. 04:41
반응형

<질문>

많은 연구와 조사 끝에 Eric5를 편집기로 사용하여 pyQT4로 Python 개발을 수행하기로 결정했습니다. 그러나 MySQL이 작동하도록 시도하면서 벽돌 벽에 부딪 혔습니다. QMySQL 드라이버에 문제가있는 것 같습니다. 지금까지 본 토론에서 유일한 수정 사항은 pyQT SDK를 설치 한 다음 MySQL 드라이버를 다시 컴파일하는 것입니다. 내가 정말로 겪고 싶지 않은 고통스러운 과정. 실제로 MS SQL을 사용하고 싶지만 MSSQL을 지원하는 pyQT 용 드라이버를 찾지 못했습니다.

그래서 내 질문은 : 실제로 작동하는 mySQL 또는 MSSQL에서 pyQT를 사용하는 가장 좋은 방법은 무엇입니까?

답변을 기다리는 동안 SQLAlchemy 및 mySQL.Connector를 사용하여 pyQT와 공존하는지 확인할 수 있습니다.


<답변1>

MS SQL을 사용하고 싶다면 QSqlDatabase 및 ODBC 드라이버를 사용하는 PyQt에서 매우 쉽습니다.

다음은 MS SQL을 사용하는 프로젝트에서 발췌 한 것입니다.

db = QSqlDatabase.addDatabase('QODBC')
#TODO: Add support for trusted connections.
#("Driver={SQLServer};Server=Your_Server_Name;Database=Your_Database_Name;Trusted_Connection=yes;")
db.setDatabaseName('DRIVER={SQL Server};SERVER=%s;DATABASE=%s;UID=%s;PWD=%s;'
                        % (hostname,
                           databasename,
                           username,
                           password))
db.open()

분명히 이미 호스트 이름, 데이터베이스 이름, 사용자 이름 및 암호 변수를 설정해야합니다. 주석 처리 된 줄에는 신뢰할 수있는 연결에 대한 연결 문자열이 표시됩니다. 아직 시도해 볼 필요는 없지만 필요한 경우 작동합니다.

데이터베이스가 열리면 PyQt 드라이버와 함께 MySql을 사용하는 것처럼 QSqlQuery를 사용할 수 있습니다.


<답변2>

예, 작동합니다. 저도 똑같이합니다. Qt QtSql 모듈의 Raw SQL 버전에 대해 SQLAlchemy가 제공하는 것과 같은 프로그래밍 API를 좋아합니다. 잘 작동하고 다른 파이썬 객체의 데이터로 하듯이 하위 클래스 QAbstractTableModel을 sqlalchemy 쿼리의 데이터로 채 웁니다. 이것은 캐싱 및 데이터베이스 쿼리를 처리하고 QtSqlTableModel의 장점을 잃는다는 것을 의미합니다. 그러나 그렇게 나쁘지 않아야합니다.


<답변3>

GUI가 QT에서 제공되는 경우에도 데이터베이스 연결을 위해 pyodbc를 고려할 수 있습니다. Pyodbc는 MySQL 및 MS SQL Server와 모두 호환됩니다.

반응형