python封装mysql数据库操作类

#/usr/bin/python
#coding:utf-8
import MySQLdb
import sys
import re
reload(sys)  
sys.setdefaultencoding('utf-8')

class db:
    db = None
    def __init__(self,conf):
        if self.db == None:
            # host user  password dbname port
            self.db = MySQLdb.connect(conf[0],conf[1],conf[2],conf[3],conf[4])

    def close(self):
        self.db.close()
        self.db = None
    
    #运行sql 返回全部结果集
    def get_all(self,sql):
        if self.db == None:
            raise RuntimeError("数据库连接没有打开")
        cur = self.db.cursor()
        cur.execute(sql)
        result = cur.fetchall()
        return result

    
    #运行sql 返回一行结果
    def get_one(self,sql):
        cur = self.db.cursor()
        cur.execute(sql)
        result = cur.fetchone()
        return result


    def __exit__():
        close()

调用demo


#!/usr/bin/python
#coding:utf-8
import MySQLdb
import sys
import re
from db import *
reload(sys)  
sys.setdefaultencoding('utf-8')

#数据库连接配置
DB = db(['192.168.10.200','user','123456','dbname',3306])
tables = DB.get_all('show tables')
if tables != None:
    for table in tables:
        #print(table[0])
        rs_count = DB.get_one("select count(*) from "+table[0])[0]
        print(rs_count)
DB.close()

基本思路如此,达到一定的封装效果。


标签: none

非特殊说明,本博所有文章均为博主原创。

最新文章

发表评论