如何在不向相應(yīng)的表中插入行的情況下使用創(chuàng)建表定義的實例。例如我想要的是:from pony import ormfrom pony.orm import Requireddb = orm.Database()class User(db.Entity): name = Required(str) address = Optional(str)db.bind(provider='sqlite', filename=':memory:')db.generate_mapping(create_tables=True)bob = User(name='bob')### CODE FROM HERE ON IS WRONG BUT SHOWCASES WHAT I WANT# So far the database has not been modifiedbob.add() # at this point bob is addeddb.commit() # transaction is committed以上可能嗎?我想要這個的原因是我想使用類定義而不向數(shù)據(jù)庫添加項目。這只是確保各地的用戶(在本例中)具有相同屬性的一種非常簡單的方法。我最初使用pyDAL它,我發(fā)現(xiàn)它很容易設(shè)置表格,但在那里我必須定義表格,然后還要編寫類,所以我搬到了那里,ponyorm但不清楚我是否可以實現(xiàn)我想要的。更新1:一個示例用例是:我正在抓取一個網(wǎng)站我拉入“行”數(shù)據(jù)如果地址尚不可用創(chuàng)建用戶實例不添加它只是使用類作為數(shù)據(jù)的容器如果信息可用創(chuàng)建一個實例,只有當(dāng)記錄不存在時才添加它基本上,我希望能夠?qū)?Class 用作信息的容器,而不必總是將其添加到數(shù)據(jù)庫中。
1 回答

Qyouu
TA貢獻(xiàn)1786條經(jīng)驗 獲得超11個贊
PonyORM 作為 ORM 沒有為這種情況提供任何東西。您仍然可以使用常規(guī)的 Python 字典或類。
users = {} # id: info
因此,當(dāng)您積累(或無論您在做什么)信息時,您可以創(chuàng)建這樣的對象。
@db_session
def insert_users():
for k, v in users.items():
User(id=k, **v)
添加回答
舉報
0/150
提交
取消