1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
import sys
import os
sys.path.append(os.path.dirname(__file__))
# sys.path.append('E:\\ruanjian\\Python\\Lib\\site-packages')
 
 
 
from sqlalchemy import create_engine
class DataBase:
    """ 远程数据库 """
    # con_read = None
    # con_write = None
    # ip = '114.215.109.124'
    # user = 'fumeRemote'
    # password = 'feiyu2023'
    # port = 3306
    # data_base_name = 'fume'
 
 
    """ 本机 """
    con_read = None
    con_write = None
    ip = 'localhost'
    user = 'root'
    password = '1234'
    port = 3306
    data_base_name = 'qianduan_sql'
 
 
 
    """连接数据库
    """
    def connect_remote_database_read(self):
 
 
        if self.con_read == None or self.con_read.closed:
            engine = create_engine(f"mysql+pymysql://{self.user}:{self.password}@{self.ip}:{self.port}/{self.data_base_name}?charset=utf8",pool_recycle=3600, pool_size=3, max_overflow=0)
            self.con_read = engine.connect()
        return self.con_read
 
    def connect_remote_database_write(self):
        """ 写"""
 
    
        if self.con_write == None or self.con_write.closed:
            engine = create_engine(f"mysql+pymysql://{self.user}:{self.password}@{self.ip}:{self.port}/{self.data_base_name}?charset=utf8",pool_recycle=3600, pool_size=3, max_overflow=0)
            self.con_write = engine.connect()
        return self.con_write
 
 
    # """ 连接本地数据库 
    # """
    # def connect_local_database_read(self):
    #     """ 读数据
    #     """
    #     if self.con_read == None or self.con_read.closed:
    #         engine = create_engine(f"mysql+pymysql://{self.user}:{self.password}@{self.ip}:{self.port}/{self.data_base_name}?charset=utf8")
    #         self.con_read = engine.connect()
    #     return self.con_read
 
    # def connect_local_database_write(self):
    #     """ 写数据
    #     """
    #     if self.con_write == None or self.con_write.closed:
    #         engine = create_engine(f"mysql+pymysql://{self.user}:{self.password}@{self.ip}:{self.port}/{self.data_base_name}?charset=utf8")
    #         self.con_write = engine.connect()
    #     return self.con_write
 
 
    def disconnect(self,area_type:str,option_type:str):
        """"断开连接
 
        Args:
            area_type (str): 数据库所属位置。local与remote
            option_type (str): 操作类型。write和read
        """
 
        self.con_read.close()
 
 
# 其他文件导入此对象即可 
datebase_single_obj = DataBase()
 
if __name__ == '__main__':
    # print(datebase_single_obj.connect_remote_database_read()) 
    pass