我想使用 pony orm 测试一张表是否为空。
起初我连接到数据库并说生成映射。 我在这里使用“名称”表作为示例并连接到 postgres 数据库
from pony.orm import *
class Names(db.Entity):
name = Required(str)
@db_session
def populate_names(name_list):
for name_element in name_list:
db.insert("Names", name=name_element)
@db_session
def test_empty():
temp = False
# if Names is empty, set temp = True
if Names ... :
temp = True
return temp
if __name__ == "__main__":
characters = ['James', 'Elisabeth', 'Paul', ...]
db = Database()
db.bind(provider='postgres', user='', password='', host='', database='')
# generate_mappings already creates empty tables
db.generate_mapping(create_tables=True)
empty = test_empty()
if empty is True:
populate_names(characters)
我在 Pony Docs 中找不到任何关于检查表是否为空的信息。
if Names is None:
上面一行给出了“False”,因为该表已经存在。 有谁知道解决方案吗?
最佳答案
最简单的方法是这样写:
with db_session:
if not Names.select().exists():
populate_names()
或者,您可以将测试放在 populate_my_entity()
中:
@db_session
def populate_names(name_list):
if Names.select().exists():
return
for name_element in name_list:
db.insert("Names", name=name_element)
关于Python Pony Orm 测试表是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51635940/