代码之家  ›  专栏  ›  技术社区  ›  aaronasterling

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

  •  7
  • aaronasterling  · 技术社区  · 14 年前

    复制错误的代码:

    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连接到它。

    有什么想法吗?

    1 回复  |  直到 13 年前
        1
  •  12
  •   Ignacio Vazquez-Abrams    13 年前

    返回值来自 sessionmaker() is a class . 在对实例使用方法之前,需要先实例化它。