为什么在使用sqlite的sqlalchemy中会出现未绑定会话方法?

6 投票
1 回答
2523 浏览
提问于 2025-04-16 01:07

下面是导致错误的代码:

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

sessionmaker() 返回的结果是一个类。你需要先创建这个类的实例,然后才能使用实例上的方法。

撰写回答