2010-07-11 6 views
7

-Code zu replizieren den Fehler:Warum sind Sitzungs-Methoden in sqlalchemy mit sqlite nicht gebunden?

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() 

diesen Code Ausbeuten Lauf:

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) 

I 95% positiv bin, dass der Dateiname ist nicht das Problem, wie ich

, um es aus der Schale verbinden kann

irgendwelche Ideen?

Antwort

12

Der Rückgabewert von sessionmaker()is a class. Sie müssen es instanziieren, bevor Sie Methoden für die Instanz verwenden.

+0

Oh, ich habe das vermisst. Vielen Dank. Ich wünschte, ich könnte Sie aufrüsten – aaronasterling

+0

@ignacio - wie würden Sie das mit diesem spezifischen Code tun? –

+0

@Jay: So wie ich jede Klasse in Python instanziieren. –

Verwandte Themen