SqlAlchemy表名反映使用有效的方法

时间:2016-12-31 11:48:18

标签: sqlalchemy flask-sqlalchemy

我正在使用下面的代码在Flask app中的GET调用中提取数据库上的表名。:

session = db.session()
qry = session.query(models.BaseTableModel) 
results = session.execute(qry)
table_names = []
for row in results:
    for column, value in row.items():
        #this seems like a bit of a hack
        if column == "tables_table_name":
            table_names.append(value)
print('{0}: '.format(table_names))

鉴于数据库中的表可能会定期添加/删除,上面的代码是一种有效且可靠的方法来获取数据库中表的名称吗?

1 个答案:

答案 0 :(得分:1)

一个明显的优化是使用row["tables_table_name"]而不是第二个循环。

假设BaseTableModel是一个表,其中包含所有其他表的名称,而不是使用最快的方法来获取此数据。