gpt4 book ai didi

python - Flask-SQLAlchemy 检查数据库中是否存在表

转载 作者:太空狗 更新时间:2023-10-30 01:32:32 27 4
gpt4 key购买 nike

Flask-SQLAlchemy 检查数据库中是否存在表。我看到类似的问题,但我尽量不成功。

Flask-SQLAlchemy check if row exists in table

我创建了一个表对象,像这样:

<class'flask_sqlalchemy.XXX'>,

现在如何检查对象是否存在于数据库中。

我做了很多尝试:例如:

   for t in db.metadata.sorted_tables:
print("tablename",t.name)

之前创建了一些表对象,但它不存在于数据库中,现在它们。全部打印。eg:打印内容为

tablename: table_1
tablename: table_2
tablename: table_3

但只有table_1是存在数据的,table_2和table_3是动态创建的,现在我只想使用table_1。

非常感谢。

最佳答案

我使用了这些方法。像您一样查看模型只会告诉您数据库中应该包含什么。

import sqlalchemy as sa

def database_is_empty():
table_names = sa.inspect(engine).get_table_names()
is_empty = table_names == []
print('Db is empty: {}'.format(is_empty))
return is_empty

def table_exists(name):
ret = engine.dialect.has_table(engine, name)
print('Table "{}" exists: {}'.format(name, ret))
return ret

可能有比这更简单的方法:

def model_exists(model_class):
engine = db.get_engine(bind=model_class.__bind_key__)
return model_class.metadata.tables[model_class.__tablename__].exists(engine)

关于python - Flask-SQLAlchemy 检查数据库中是否存在表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40652938/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com