动态创建一组SQLAlchemy表

2024-09-24 22:28:36 发布

您现在位置:Python中文网/ 问答频道 /正文

用sqlhemi定义了一个简单的alchemy表:

Base = declarative_base()
class MyTable(Base):
    __tablename__ = 'mytable1'
    row_id = Column(INT, primary_key=True)
    another_column = Column(CHAR(10))

我想创建一组具有以下名称的表:

^{pr2}$

有没有一种简单的方法来创建这组表,它们都具有相同的列定义(但每个表都有自己的名称),而不重复表定义?在


Tags: 名称idbase定义mytablecolumnclassint
1条回答
网友
1楼 · 发布于 2024-09-24 22:28:36

到这儿去最好的办法是查字典。也许是这样的:

table_dict = {}
for i in range(4):   # Create
  table_name = "mytable" + str(i)
  table_dict[table_name] = MyTable(table_name)

for i in range(4):   # Query
  session.query(table_dict["mytable" + str(i)])

类似的东西可能就是你想要的。这也允许您自动创建字典键,就像在for循环中一样。

编辑:我假设您正在生成MyTable类的实例,但再次查看时发现情况并非如此。我不知道SQLAlchemy的具体细节,但是我想您应该使用__init__函数来创建MyTable实例。

EDIT EDIT:如果要创建多个表对象,可以创建一个函数来生成并返回一个新类。也许是这样的:

^{pr2}$

然后你可以用mytable1 = TableCreator("mytable1")来调用它。

相关问题 更多 >