首页 > 代码库 > Python+PyQt 数据库基本操作

Python+PyQt 数据库基本操作

Sqlite:

使用Python的sqlite3:

需要注意下commit方式与qt稍有不同

import sqlite3class DBManager():    def __init__(self):        self.db = sqlite3.connect("core.db")        self.query = self.db.cursor()          ...        self._initTable()        ...    ## Create table["webpower"] if not exists    def _initTable(self):        self.query.execute("create table if not exists webpower (id integer primary key,name TEXT,state integer)")        self.db.commit()    ...

 

使用QtSql:

 1 from PyQt4.QtSql import QSqlQuery,QSqlDatabase 2  3 class DBManager(): 4     def __init__(self): 5         self.db = QSqlDatabase.addDatabase("QSQLITE") #select database type 6         self.db.setDatabaseName("core.db") # set database name 7         self.db.open()  #connect to or create database   8         self.query = QSqlQuery() #sql handler 9         ...    10     11     ...

 

Mysql:

from PyQt4.QtSql import QSqlQuery,QSqlDatabaseclass DBManager():    def __init__(self):        self.db = QSqlDatabase.addDatabase("QMYSQL")  #select database type        self.db.setHostName("localhost")  #set address        self.db.setUserName("root"); #set user name        self.db.setPassword("root"); #set user pwd        self._trytoConnect() #check connection        self.query = QSqlQuery()        ## create database        self.query.exec_("CREATE DATABASE test1")        ## Choose database        self.db.setDatabaseName("test1")        self._trytoConnect()        #also can be :self.query.exec_("USE test1")    ## Connect and check connection state    def _trytoConnect(self):        if (self.db.open()):                 print "Success"        else:            print "Failed to connect to mysql"    ...

 

常用SQL:

--create tablecreate table if not exists test2 (id integer primary key,time real,powers real);--clear tabledelete from test2;--insertinsert into t1 values(1,0.1,0.2);--selectselect * from test1--delete tabledrop table test4

 

Python+PyQt 数据库基本操作