Python Pony Orm 测试 table 是否为空
Python Pony Orm Test if table is empty
我想使用 pony orm 测试 table 是否为空。
起初我连接到数据库并说生成映射。
我在这里使用 'Names' table 作为示例并连接到 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 文档中找不到任何关于检查 table 是否为空的信息。
if Names is None:
上面的行给了我 'False' 因为 table 已经存在。
有谁知道解决方案吗?
最简单的写法是:
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)
我想使用 pony orm 测试 table 是否为空。
起初我连接到数据库并说生成映射。 我在这里使用 'Names' table 作为示例并连接到 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 文档中找不到任何关于检查 table 是否为空的信息。
if Names is None:
上面的行给了我 'False' 因为 table 已经存在。 有谁知道解决方案吗?
最简单的写法是:
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)