为什么在 sqlalchemy 中使用 sqlite 取消绑定会话方法?

2024-06-25

复制错误的代码:

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% 确信文件名不是问题,因为我可以从 shell 连接到它

有任何想法吗?


返回值来自sessionmaker() 是一个类 http://docs.sqlalchemy.org/en/latest/orm/session.html#getting-a-session。您需要在实例上使用方法之前实例化它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么在 sqlalchemy 中使用 sqlite 取消绑定会话方法? 的相关文章

随机推荐