Skip to content

Commit e00cf34

Browse files
committed
add demo DBManage to operate database.
1 parent 4532637 commit e00cf34

1 file changed

Lines changed: 49 additions & 0 deletions

File tree

demo/mysql_demo.py

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,52 @@
1212
cur.execute("select * from user")
1313
print(cur.fetchone())
1414

15+
16+
class DBManage:
17+
def __init__(self, db_info, db_name) -> None:
18+
self.db_name = db_name
19+
self.info = db_info
20+
self.conn = None
21+
self.cursor = None
22+
self.connect()
23+
24+
def connect(self):
25+
try:
26+
db_user = self.info['db_user']
27+
db_host = self.info['db_host']
28+
db_port = int(self.info['db_port'])
29+
db_name = self.info['db_name']
30+
db_pwd = self.info['db_password']
31+
32+
self.conn = pymysql.connect(
33+
host=db_host,
34+
user=db_user,
35+
passwd=db_pwd,
36+
database=db_name,
37+
port=db_port)
38+
self.cursor = self.conn.cursor(pymysql.cursors.DictCursor)
39+
except Exception as e:
40+
raise e
41+
42+
def close(self):
43+
self.cursor.close()
44+
self.conn.close()
45+
46+
def __enter__(self):
47+
return self
48+
49+
def __exit__(self, exc_type, exc_val, exc_tb):
50+
self.close()
51+
52+
def exec_sql(self, sql):
53+
"""执行 SQL,以字典的方式获取执行结果
54+
55+
Args:
56+
sql (str): 原生 SQL 语句
57+
58+
Returns:
59+
list: 字典组成的执行结果列表,其中字典的 Key 为数据库表头,Value 为数据。
60+
"""
61+
self.cursor.execute(sql)
62+
return self.cursor.fetchall()
63+

0 commit comments

Comments
 (0)