Python3+PyMySQL连接数据库操作

版权声明:本文为博主原创文章,转载请加上来源。 https://blog.csdn.net/m290345792/article/details/89155945

python3基本上使用PyMySQL进行操作。下面是一个简单操作的小例子,大家可以看下。

#!/usr/bin/python3
# -*- coding: utf-8 -*-
import pymysql


class MyDB():
    def __init__(self, host="127.0.0.1", username="root", password="123456", port=3306, database="test"):
        """
        类例化,处理一些连接操作
        """
        self.host = host
        self.username = username
        self.password = password
        self.database = database
        self.port = port
        self.cur = None
        self.con = None
        try:
            self.con = pymysql.connect(host=self.host, user=self.username, password=self.password,
                                                 port=self.port, database=self.database)
            self.cur = self.con.cursor()
        except Exception as err:
            raise Exception("数据库连接错误,请检查连接配置.", err)

    def close(self):
        """
        结束查询和关闭连接
        """
        self.con.close()

    def create_table(self, sql_str):
        """创建数据表"""
        try:
            self.cur.execute(sql_str)
        except Exception as e:
            print(e)

    def query_formatrs(self, sql_str):
        """查询数据,返回一个列表,里面的每一行是一个字典,带字段名
            cursor 为连接光标
            sql_str为查询语句
        """
        try:
            self.cur.execute(sql_str)
            rows = self.cur.fetchall()
            r = []
            for x in rows:
                r.append(dict(zip(self.cur.column_names, x)))

            return r
        except:
            return False

    def query(self, sql_str):
        """查询数据并返回
             cursor 为连接光标
             sql_str为查询语句
        """
        try:
            self.cur.execute(sql_str)
            rows = self.cur.fetchall()
            return rows
        except Exception as err:
            return False

    def execute_update_insert(self, sql):
        """
        插入或更新记录 成功返回最后的id
        """
        self.cur.execute(sql)
        self.con.commit()
        return self.cur.lastrowid


if __name__ == "__main__":
    myDb = MyDB()
    # 创建表
    myDb.create_table('DROP TABLE IF EXISTS `user`; create table user (id varchar(20) primary key, name varchar(20))')
    # 插入数据
    myDb.execute_update_insert("insert into user (name) values  ('zhangsan')")
    # 查询数据表
    mydb_new = MyDB()
    results = myDb.query("SELECT * FROM user")
    print(results)
    for row in results:
        ids = row[0]
        name = row[1]

        print("ID=%s,name=%s" % (ids, name))

    # 关闭数据库
    myDb.close()

猜你喜欢

转载自blog.csdn.net/m290345792/article/details/89155945