Python и SEO

sqlalchemy

Sqlalchemy — фреймворк для работы с базами данных с технолгией ORM. Почитать про него можно тут. Моей задачей было понять, как использовать этот фреймворк в потоках.

import sqlalchemy
from sqlalchemy.orm import sessionmaker, scoped_session

connection = "mysql://root:@localhost/mydatabase"
# pool_size - указывает сколько запросов хранить в очереди, если будет больше, вылетит exception
engine = sqlalchemy.create_engine(connection, pool_size=30)
# Создаем объект Session и дальше во всех потоках используем только его.
Session = scoped_session(sessionmaker(bind=engine))

#Accounts - моя таблица, к которой мне нужно делать запросы, код по настройке отображения я опустил.
accounts = Session.query(Accounts)
account = accounts[0]

Один интересный момент, account, созданный в одном потоке и переданный в другой, изменить не получится.
Если мы поменяем атрибуты account в новом потоке и выполним Session.commit() — таблица не обновится.

 

Автор: kalombo

Январь 30, 2018 в 1:43 пп

Категория Разное

Ответы: 2 to 'sqlalchemy'

Подписаться на комментарии RSS or TrackBack to 'sqlalchemy'.

  1. «Один интересный момент, account, созданный в одном потоке и переданный в другой, изменить не получится.
    Если мы поменяем атрибуты account в новом потоке и выполним Session.commit() — таблица не обновится.»

    Если это фигово — не пробовал чуть иначе подойти к этому? Ну, например, между потоками гонять не чистый account, а словарь с этим объектом?

    Крайст

    2 Мар 12 at 09:56

  2. Да я просто новую сессию в потоке создавал. А словарь не прокатил бы, имхо.

    kalombo

    2 Мар 12 at 12:12

Комментировать

Перед отправкой формы:
Human test by Not Captcha