更新 database_manager.py
parent
ba6aa5fbb5
commit
b863ac4c8c
|
|
@ -1,28 +1,55 @@
|
||||||
import pymysql
|
import pymysql
|
||||||
from config import DB_CONFIG
|
from db.connection import MySQLPool
|
||||||
|
import bcrypt
|
||||||
|
|
||||||
class DatabaseManager:
|
class DatabaseManager:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.connection = pymysql.connect(**DB_CONFIG)
|
# 使用MySQLPool初始化数据库连接池
|
||||||
|
self.pool = MySQLPool()
|
||||||
|
|
||||||
def fetch(self, query, params=None):
|
def fetch(self, query, params=None):
|
||||||
# 实现查询逻辑
|
conn = self.pool.get_connection()
|
||||||
pass
|
try:
|
||||||
|
cursor = conn.cursor()
|
||||||
|
cursor.execute(query, params or ())
|
||||||
|
result = cursor.fetchall()
|
||||||
|
return result
|
||||||
|
finally:
|
||||||
|
cursor.close()
|
||||||
|
conn.close()
|
||||||
|
|
||||||
def insert(self, query, params=None):
|
def execute(self, query, params=None):
|
||||||
# 实现插入逻辑
|
conn = self.pool.get_connection()
|
||||||
pass
|
try:
|
||||||
|
cursor = conn.cursor()
|
||||||
|
cursor.execute(query, params or ())
|
||||||
|
conn.commit()
|
||||||
|
return cursor.rowcount
|
||||||
|
finally:
|
||||||
|
cursor.close()
|
||||||
|
conn.close()
|
||||||
|
|
||||||
def update(self, query, params=None):
|
def user_exists(self, phone_number):
|
||||||
# 实现更新逻辑
|
sql = "SELECT 1 FROM user WHERE phone_number=%s LIMIT 1"
|
||||||
pass
|
result = self.fetch(sql, (phone_number,))
|
||||||
|
return len(result) > 0
|
||||||
|
|
||||||
def delete(self, query, params=None):
|
def insert_user(self, user):
|
||||||
# 实现删除逻辑
|
sql = """
|
||||||
pass
|
INSERT INTO user (nickname, phone_number, password, identity, is_active)
|
||||||
|
VALUES (%s, %s, %s, %s, %s)
|
||||||
|
"""
|
||||||
|
data = (user.nickname, user.phone_number, user.password, user.identity, user.is_active)
|
||||||
|
# print(data)
|
||||||
|
return self.execute(sql, data)
|
||||||
|
|
||||||
def close(self):
|
def valid_login(self, phone_number, password_attempt):
|
||||||
# 关闭数据库连接
|
# SQL查询获取用户的哈希密码
|
||||||
self.connection.close()
|
sql = "SELECT password FROM user WHERE phone_number=%s LIMIT 1"
|
||||||
|
result = self.fetch(sql, (phone_number,))
|
||||||
# 可能还包含其他数据库操作方法...
|
if result:
|
||||||
|
stored_hash = result[0]['password'] # 假设结果是密码字段
|
||||||
|
# 使用bcrypt进行密码验证
|
||||||
|
if bcrypt.checkpw(password_attempt.encode('utf-8'), stored_hash.encode('utf-8')):
|
||||||
|
return True # 密码匹配,登录成功
|
||||||
|
return False # 密码不匹配或用户不存在,登录失败
|
||||||
|
|
|
||||||
Reference in New Issue