chore: initialize lawyers crawler project
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
import pymysql
|
||||
from config import DB_CONFIG
|
||||
|
||||
class Db:
|
||||
def __enter__(self):
|
||||
# 使用配置文件中的信息
|
||||
self.db = pymysql.connect(**DB_CONFIG)
|
||||
return self
|
||||
|
||||
def __exit__(self, exc_type, exc_val, exc_tb):
|
||||
# 关闭数据库连接
|
||||
self.db.close()
|
||||
|
||||
# 插入数据
|
||||
def insert_data(self, table_name, data):
|
||||
cursor = self.db.cursor()
|
||||
sql = f"INSERT INTO {table_name} ({', '.join(data.keys())}) VALUES ({', '.join(['%s'] * len(data))})"
|
||||
cursor.execute(sql, list(data.values()))
|
||||
self.db.commit()
|
||||
inserted_id = cursor.lastrowid # 获取插入行的 ID
|
||||
cursor.close()
|
||||
return inserted_id
|
||||
|
||||
# 查询数据
|
||||
def select_data(self, table_name, columns="*", condition=None):
|
||||
cursor = self.db.cursor(pymysql.cursors.DictCursor)
|
||||
sql = f"SELECT {columns} FROM {table_name}"
|
||||
if condition:
|
||||
sql += f" WHERE {condition}"
|
||||
cursor.execute(sql)
|
||||
result = cursor.fetchall()
|
||||
cursor.close()
|
||||
return result
|
||||
|
||||
# 删除数据
|
||||
def delete_data(self, table_name, condition):
|
||||
cursor = self.db.cursor()
|
||||
sql = f"DELETE FROM {table_name} WHERE {condition}"
|
||||
cursor.execute(sql)
|
||||
self.db.commit()
|
||||
cursor.close()
|
||||
|
||||
# 更新数据
|
||||
def update_data(self, table_name, data, condition):
|
||||
cursor = self.db.cursor()
|
||||
set_clause = ", ".join([f"{key} = %s" for key in data.keys()])
|
||||
sql = f"UPDATE {table_name} SET {set_clause} WHERE {condition}"
|
||||
cursor.execute(sql, list(data.values()))
|
||||
self.db.commit()
|
||||
cursor.close()
|
||||
# 判断数据是否存在
|
||||
def is_data_exist(self, table_name, condition):
|
||||
cursor = self.db.cursor()
|
||||
sql = f"SELECT COUNT(*) FROM {table_name} WHERE {condition}"
|
||||
cursor.execute(sql)
|
||||
result = cursor.fetchone()
|
||||
cursor.close()
|
||||
return result[0] > 0
|
||||
Reference in New Issue
Block a user