У меня есть это работает на веб-сайте. Когда пользователь входит в систему, я запрашиваю его профиль, чтобы узнать, сколько «кредитов» он имеет. Кредиты приобретаются через paypal. Если человек покупает кредиты и идет оплата, запрос по-прежнему показывает 0 кредитов, хотя, если я запускаю тот же запрос в phpmyadmin, он приносит правильный результат. Если я перезапущу веб-сервер apache и перезагрузите страницу, отобразится правильное количество кредитов. Вот мой картографа код, который показывает количество кредитов, каждый пользователь имеет:sqlalchemy кеширование некоторых запросов
mapper(User, users_table, order_by = 'user.date_added DESC, user.id DESC', properties = {
'userCreditsCount': column_property(
select(
[func.ifnull(func.sum(orders_table.c.quantity), 0)],
orders_table.c.user_id == users_table.c.id
).where(and_(
orders_table.c.date_added > get_order_expire_limit(), # order must not be older than a month
orders_table.c.status == STATUS_COMPLETED
)).\
label('userCreditsCount'),
deferred = True
)
# other properties....
})
Я использую SQLAlchemy с рамкой колбы, но не использовать их колбу-SQLAlchemy пакета (только чистый SQLAlchemy)
Вот как я начинаю моя база данных:
engine = create_engine(config.DATABASE_URI, pool_recycle = True)
metadata = MetaData()
db_session = scoped_session(sessionmaker(bind = engine, autoflush = True, autocommit = False))
Я узнал, как питон и SQLAlchemy в этом проекте, так что я может отсутствовать вещи, но это один сводит меня с ума. Есть идеи?
Я не думаю, что автоматическая установка на True - это умный способ. Они даже не рекомендуют его в своих документах. –