使用python写一个调用数据库的方法, 需要:1.做好封装和代码注释,注释为中文2.使用pymsql库,3.防止sql注入攻击
时间: 2024-05-08 14:18:18 浏览: 72
Python库 | PyMuPDF-1.18.12.tar.gz
5星 · 资源好评率100%
好的,我会给你提供一个Python调用数据库的方法:
首先,你需要安装pymysql库,可以使用以下命令进行安装:
```
pip install pymysql
```
接下来就可以编写代码了,以下是一个简单的调用MySQL数据库的示例:
```python
import pymysql
class DBHelper:
def __init__(self, host, port, user, password, db, charset='utf8mb4'):
self.host = host
self.port = port
self.user = user
self.password = password
self.db = db
self.charset = charset
self.conn = self.connect()
def connect(self):
conn = pymysql.connect(
host=self.host,
port=self.port,
user=self.user,
password=self.password,
db=self.db,
charset=self.charset)
return conn
def execute(self, sql, values=None, fetchone=False):
with self.conn.cursor() as cursor:
try:
cursor.execute(sql, values)
self.conn.commit()
if fetchone:
return cursor.fetchone()
except Exception as e:
self.conn.rollback()
return str(e)
def close(self):
self.conn.close()
if __name__ == '__main__':
# 以下是一个示例
db = DBHelper('localhost', 3306, 'root', 'password', 'test')
sql = 'SELECT * FROM users WHERE name=%s AND age=%s'
user = db.execute(sql, ('Tom', 20), fetchone=True)
print(user)
db.close()
```
以上代码中,我们定义了一个DBHelper类,用于连接数据库,并提供了一个execute方法,用于执行SQL语句。
我们使用with语句创建一个游标,然后执行SQL语句。如果执行成功,将会自动提交事务。如果发生异常,将会回滚事务。
在执行SQL语句时,我们使用了参数化的方式,防止了SQL注入攻击。
注意,为了简化代码,这里使用了默认编码utf8mb4,实际使用中应根据需要进行调整。
希望以上代码对你有所帮助。如果有其他问题,欢迎继续提问。
阅读全文