Как я могу использовать создание экземпляра определения таблицы без вставки строки в соответствующую таблицу.
Например, что я хотел бы:
from pony import orm
from pony.orm import Required
db = 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 modified
bob.add() # at this point bob is added
db.commit() # transaction is committed
Возможно ли вышеизложенное? Причина, по которой я хочу это, заключается в том, что я хочу использовать определение класса без добавления элементов в базу данных. Это просто очень простой способ убедиться, что пользователи везде (в этом примере) имеют одинаковые атрибуты.
Сначала я использовал pyDAL
, что показалось очень простым для настройки таблиц, но там мне нужно было определить таблицы, а затем написать классы, чтобы я перешел на ponyorm
, но неясно, смогу ли я достичь того, что я хотел бы.
спасибо
ОБНОВЛЕНИЕ 1:
Пример использования для этого:
- Я очищаю веб-сайт
- Я вытягиваю "ряд" данных
- если адрес еще не доступен
- Создать экземпляр пользователя
- Не добавлять его просто используйте класс в качестве контейнера для данных
- Если информация доступна
- Создайте экземпляр и только если запись еще не существует, добавьте ее
По сути, я хочу иметь возможность использовать класс в качестве контейнера информации, не добавляя его в базу данных всегда.