【发布时间】:2016-01-07 18:35:10
【问题描述】:
我希望创建 26 个独立的 sql 数据库,每个数据库都具有相同的结构。 (即每个字母一个),理想情况下我可以从字典或类似的[即使用database["a"] ] 访问与字母a 对应的数据库。
我目前有以下代码,它使用 peewee 生成一个 sql 数据库(在本例中为字母 a)。
from peewee import *
database_location_a = "C:\\database\\a.db"
data_sql_a= SqliteDatabase(database_location_a, threadlocals=True, pragmas=(("synchronous", "off"),))
class BaseModel(Model):
class Meta:
database = data_sql_a
class main_table(BaseModel):
file_name = CharField(primary_key = True)
year = CharField()
data_sql_a.connect()
data_sql_a.create_tables([main_table])
我可以轻松循环这段代码的某些部分(例如,我可以轻松创建文件位置字典)。但是,我卡住的地方是给定位置被编码到类Basemodel,我如何循环[即我是否需要 26 个单独的课程,如果需要,我可以创建它而不需要复制/粘贴课程 26 次]?同样,鉴于 main_table 使用 BaseModel,我是否也需要该类的 26 个单独实例?
我可能会以错误的方式处理此问题,但想知道我可以采用什么方法来调整此代码以创建多个文件,而无需多次复制/粘贴?
【问题讨论】:
-
您不能在
BaseModel中为数据库对象添加参数吗? -
@cricket_007 你能否详细说明一下 - 我可能应该注意到我以前没有在 Python 中使用过很多类,所以我怀疑有一个非常简单的解决方案。
-
没关系,我不知道 peewee。我想你想要的是database proxy
标签: python python-3.x peewee