python 数据库封装
时间: 2023-10-13 09:24:27 浏览: 228
Python数据封装是将数据库操作相关的代码封装成一个模块或类,使得代码结构更加清晰,易于维护和重用。常用的Python数据库封装模块有:
1. PyMySQL:一个纯Python实现的MySQL客户端库,支持Python 2和Python 3。
2. MySQLdb:Python MySQL数据库接口,是Python的一个第三方模块,用于连接MySQL数据库。
3. SQLAlchemy:一个Python SQL工具和对象关系映射器,支持多种数据库,包括MySQL、PostgreSQL、SQLite、Oracle等。
4. Django ORM:一个Python Web框架,自带ORM(对象关系映射器),支持多种数据库,包括MySQL、PostgreSQL、SQLite等。
封装后的代码示例:
```
import pymysql
class DB:
def __init__(self, host, user, password, database):
self.conn = pymysql.connect(
host=host,
user=user,
password=password,
database=database,
charset='utf8'
)
def query(self, sql):
cursor = self.conn.cursor()
cursor.execute(sql)
result = cursor.fetchall()
cursor.close()
return result
def insert(self, table, data):
cursor = self.conn.cursor()
keys = ','.join(data.keys())
values = ','.join(['%s'] * len(data))
sql = 'INSERT INTO %s (%s) VALUES (%s)' % (table, keys, values)
cursor.execute(sql, tuple(data.values()))
self.conn.commit()
cursor.close()
def update(self, table, data, condition):
cursor = self.conn.cursor()
values = ','.join(["%s='%s'" % (k, v) for k, v in data.items()])
sql = 'UPDATE %s SET %s WHERE %s' % (table, values, condition)
cursor.execute(sql)
self.conn.commit()
cursor.close()
def delete(self, table, condition):
cursor = self.conn.cursor()
sql = 'DELETE FROM %s WHERE %s' % (table, condition)
cursor.execute(sql)
self.conn.commit()
cursor.close()
def close(self):
self.conn.close()
```
以上代码是一个封装了MySQL数据库操作的类,包括查询、插入、更新和删除等常用操作。使用时只需实例化DB类,并调用对应的方法即可完成数据库操作。
阅读全文