python - 申请类以访问不同数据库的最佳创建模式是什么
问题描述
我有一个用 python 编写的应用程序
目前大约有 5 个类用于访问不同的数据库。
这些类的结构如下(我知道它设计得很糟糕):
class access_db_a:
def __init__(self, db):
self.mydb = None
def connect(self):
mydb = mysql.connector.connect(
host=info["db_2_host"],
user=info["user"],
passwd=info["passwd"],
database=info["db_2"],
)
def select(self):
mycursor = mydb.cursor()
mycursor.execute("SELECT * FROM {}".format(TABLE_NAME))
myresult = mycursor.fetchall()
for x in myresult:
print(x)
def insert(self):
mycursor = mydb.cursor()
query = {'queries for db'}
class access_db_b:
def __init__(self, db_2):
self.mydb = None
def connect(self, db_2):
mydb = mysql.connector.connect(
host=info["db_2_host"],
user=info["user"],
passwd=info["passwd"],
database=info["db_2"],
)
def select(self):
mycursor = mydb.cursor()
mycursor.execute("SELECT * FROM {}".format(TABLE_NAME))
myresult = mycursor.fetchall()
for x in myresult:
print(x)
def insert(self):
mycursor = mydb.cursor()
query = {'queries for db_2'}
我的问题是:在这里应用的最佳创建设计模式是什么(即Signleton,工厂方法)?目的是尽量减少重复
解决方案
我不确定我明白你在问什么。如果您尝试在数据库上调用这些定义,则需要定义它们。因为他们什么都不做。如果它们是 python 库或其他模块中已经存在的函数,那么您根本不需要将它们放在一个类中。定义它们后,您可以在数据库上调用它们。
推荐阅读
- c++ - 获取 SQLite DELETE LIKE 结果
- c# - C# Asp.net MVC - 我如何正确传递从外部 API 提取的数据以显示在视图上?
- javascript - 活动状态不适用于第一次访问
- asp.net-core-3.0 - 我有一个实体,我需要添加实体类型的属性
- django - Django更改使用内联时调用pre_save post_save信号的顺序?
- php - 如果所有数组的逻辑相同,如何避免重复 foreach?
- ios - Swift 的 UIPageControl
- apache-spark-mllib - Spark ML CountVectorizer 输出说明
- c# - 访问新保存对象上的 ID 时 MongoDB C# 驱动程序 InvalidOperationException
- svg - scale SVG pathPoints