gpt4 book ai didi

Python Pony Orm 测试表是否为空

转载 作者:搜寻专家 更新时间:2023-10-30 22:06:27 26 4
gpt4 key购买 nike

我想使用 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/

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