zoukankan      html  css  js  c++  java
  • Python+PyQt 数据库基本操作

    Sqlite:

    使用Python的sqlite3:

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

    import sqlite3
    
    class 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,QSqlDatabase
    
    class 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 table
    create table if not exists test2 (id integer primary key,time real,powers real);
    
    --clear table
    delete from test2;
    
    --insert
    insert into t1 values(1,0.1,0.2);
    
    --select
    select * from test1
    
    --delete table
    drop table test4
  • 相关阅读:
    myeclipse-9.0安装svn客户端插件
    jquery中lhgdialog插件(一)
    Jquery之ShowLoading遮罩组件
    git 命令
    org.apache.ibatis.builder.IncompleteElementException: Could not find parameter map
    在线压缩图片网址
    如何在知网下载外文文献
    Linux 常见命令
    在VIM 里面编辑和保存
    vi a.sh ABCD
  • 原文地址:https://www.cnblogs.com/yzzw006/p/4111144.html
Copyright © 2011-2022 走看看