1. 程式人生 > >python編寫mysql類實現mysql的操作

python編寫mysql類實現mysql的操作

python mysql class

前言

我們都知道利用python實現mysql的操作是件很簡單的事情,只需要熟練使用MySQLdb模塊就能實現mysql的增刪改查操作。

為了更好地整合mysql的操作,使用python的類講mysql的操作整合到一起,是個不錯的思路。這裏我編寫了一個簡單的class,來實現對mysql的操作與查詢。


操作

本例中,我們準備在mysql的iceny中創建了一張測試表t1,字段為id和timestamp,主要存儲系統的時間戳,並在該表中進行增、刪、改、查的操作:

當前mysql的狀態:

技術分享圖片

MySQLdb為python的第三方模塊,使用之前需提前安裝該模塊,這裏推薦pip安裝:

pip install MySQL-python

編寫mysql的class類:

#!/usr/local/env python3.6 
# -*- coding: UTF-8 -*-

import MySQLdb

class Mysql(object):
    def __init__(self,host,port,user,passwd,db,charset='utf8'):
        """初始化mysql連接"""
        try:
            self.conn = MySQLdb.connect(host,user,passwd,db)
        except MySQLdb.Error as e:
            errormsg = 'Cannot connect to server\nERROR(%s):%s' % (e.args[0],e.args[1])
            print(errormsg)
            exit(2)
        self.cursor = self.conn.cursor()

    def exec(self,sql):
        """執行dml,ddl語句"""
        try:
           self.cursor.execute(sql)
           self.conn.commit()
        except:
           self.conn.rollback()

    def query(self,sql):
        """查詢數據"""
        self.cursor.execute(sql)
        return self.cursor.fetchall()

    def __del__(self):
        """ 關閉mysql連接 """
        self.conn.close()
        self.cursor.close()

創建mysql對象:

mysql_test = Mysql('192.168.232.128','3306','root','123456','iceny')

創建表t1:

mysql_test.exec('create table t1 (id int auto_increment primary key,timestamp TIMESTAMP)')

技術分享圖片

往t1插入一條數據:

mysql_test.exec('insert into t1 (id,timestamp) value (NULL,CURRENT_TIMESTAMP)')


技術分享圖片

更新id為1的數據時間戳,改為執行當前的系統時間:

技術分享圖片

再插入一條數據,查詢該表數據:

mysql_test.exec('insert into t1 (id,timestamp) value (NULL,CURRENT_TIMESTAMP)')  
result = mysql_test.query('select * from t1')
print(result)

技術分享圖片

可以看到查詢出來的結果是存放在一個元祖中。

刪除表中id = 1的數據:

mysql_test.exec('delete from t1 where id = 1')

技術分享圖片


以上就是通過python編寫簡單的class類操作mysql增刪改查的簡單實現,這已經能夠應付日常工作中大量的mysql操作了。

python編寫mysql類實現mysql的操作