python将mysql的增删查改写成类和函数
时间: 2023-07-31 17:09:51 浏览: 57
好的,我可以帮你将MySQL的增删查改操作封装成类和函数。在进行操作之前,你需要安装Python的MySQL驱动程序,可以通过以下命令安装pymysql:
```
pip install pymysql
```
接下来,我们可以将MySQL的增删查改操作封装成一个类,如下所示:
```python
import pymysql
class MySQL:
def __init__(self, host, user, password, db):
self.host = host
self.user = user
self.password = password
self.db = db
self.conn = pymysql.connect(host=self.host, user=self.user, password=self.password, db=self.db)
def execute(self, sql):
cursor = self.conn.cursor()
cursor.execute(sql)
self.conn.commit()
cursor.close()
def select(self, sql):
cursor = self.conn.cursor()
cursor.execute(sql)
result = cursor.fetchall()
cursor.close()
return result
def insert(self, table, data):
keys = ','.join(data.keys())
values = ','.join(['%s'] * len(data))
sql = 'INSERT INTO {table}({keys}) VALUES ({values})'.format(table=table, keys=keys, values=values)
self.execute(sql, tuple(data.values()))
def update(self, table, data, condition):
data = ','.join(['{0}=%s'.format(key) for key in data])
sql = 'UPDATE {table} SET {data} WHERE {condition}'.format(table=table, data=data, condition=condition)
self.execute(sql, tuple(data.values()))
def delete(self, table, condition):
sql = 'DELETE FROM {table} WHERE {condition}'.format(table=table, condition=condition)
self.execute(sql)
```
这个类包含了MySQL的增删查改操作,可以根据需要进行调用。现在我们可以通过以下代码来使用这个类:
```python
mysql = MySQL('localhost', 'root', '123456', 'test')
mysql.insert('student', {'name': '张三', 'age': 18, 'score': 90})
mysql.update('student', {'score': 95}, 'name="张三"')
mysql.delete('student', 'name="张三"')
result = mysql.select('SELECT * FROM student')
print(result)
```
除了类的方式,我们还可以将MySQL操作封装成函数,如下所示:
```python
import pymysql
def mysql_execute(sql, data=None):
conn = pymysql.connect(host='localhost', user='root', password='123456', db='test')
cursor = conn.cursor()
if data:
cursor.execute(sql, data)
else:
cursor.execute(sql)
conn.commit()
cursor.close()
conn.close()
def mysql_select(sql):
conn = pymysql.connect(host='localhost', user='root', password='123456', db='test')
cursor = conn.cursor()
cursor.execute(sql)
result = cursor.fetchall()
cursor.close()
conn.close()
return result
```
这些函数分别对应MySQL的增删查改操作,可以根据需要进行调用。现在我们可以通过以下代码来使用这些函数:
```python
mysql_execute('INSERT INTO student(name, age, score) VALUES (%s, %s, %s)', ('张三', 18, 90))
mysql_execute('UPDATE student SET score=%s WHERE name=%s', (95, '张三'))
mysql_execute('DELETE FROM student WHERE name=%s', '张三')
result = mysql_select('SELECT * FROM student')
print(result)
```
这些函数的调用方式与类的调用方式有些不同,但它们都可以完成MySQL的增删查改操作。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)