Почему методы сеанса не связаны в sqlalchemy с использованием sqlite? - PullRequest
7 голосов
/ 11 июля 2010

Код, повторяющий ошибку:

from sqlalchemy import create_engine, Table, Column, Integer
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

Base = declarative_base()

class Message(Base):
    __tablename__ = 'messages'

    id = Column(Integer, primary_key=True)
    message = Column(Integer)


engine = create_engine('sqlite:///' + filename_of_your_choice)
session = sessionmaker(bind=engine)

newmessage = Message()
newmessage.message = "Hello"

messages = session.query(Message).all()

Запуск этого кода дает:

Traceback (most recent call last):
  File "C:/aaron/test.py", line 20, in <module>
    session.commit()
TypeError: unbound method commit() must be called with Session instance as first argument (got nothing instead)

Я на 95% уверен, что имя файла не является проблемой, так как я могу подключитьсяэто из скорлупы

есть идеи?

1 Ответ

12 голосов
/ 11 июля 2010

Возвращаемое значение из sessionmaker() является классом . Вам нужно создать его экземпляр перед использованием методов в экземпляре.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...