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() — таблица не обновится.
«Один интересный момент, account, созданный в одном потоке и переданный в другой, изменить не получится.
Если мы поменяем атрибуты account в новом потоке и выполним Session.commit() — таблица не обновится.»
Если это фигово — не пробовал чуть иначе подойти к этому? Ну, например, между потоками гонять не чистый account, а словарь с этим объектом?
Крайст
2 Мар 12 at 09:56
Да я просто новую сессию в потоке создавал. А словарь не прокатил бы, имхо.
kalombo
2 Мар 12 at 12:12