2010-07-11 10 views
7

Codice replicare l'errore:Perché i metodi di sessione non sono associati a sqlalchemy utilizzando sqlite?

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

esecuzione di questo codice: i rendimenti

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) 

sono sicuro al 95% che il nome del file non è il problema, come posso collegare ad esso dal guscio

qualche idea?

risposta

12

Il valore restituito da sessionmaker()is a class. È necessario creare un'istanza prima di utilizzare i metodi sull'istanza.

+0

Oh, mi sono perso. Grazie. Desiderando potrei inversiarti allo – aaronasterling

+0

@ignacio - come faresti con questo specifico codice? –

+0

@Jay: lo stesso metodo con cui istanzia qualsiasi classe in Python. –

Problemi correlati