But this is all in one file, create_all() after all classes defining the model are loaded.
I noticed earlier I accidentally posted the error twice, here is the source code. Could you try running this and see if you run into the same problem. Again this all one file. This is also my first week with sqlalchemy so if there happens to be something that I should change feel free to tell me. I'm just trying to learn another way to ' program for the web, been using PHP for years. Generally I don't use ORM but this one caught my eye, and I thought I would give it a try. <BEGIN CODE> #!/usr/bin/env python ######################################################################## # # # MODEL # # # ######################################################################## import sqlalchemy from sqlalchemy import Table, Column, Integer, String, MetaData, ForeignKey from sqlalchemy.orm import relation, backref from sqlalchemy.orm import mapper from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from sqlalchemy.orm import mapper # engine is the connection to the database engine = create_engine('sqlite:///:memory:', echo=True) # TODO: Move to a Conf file Base = declarative_base(bind=engine) class Test(Base): """ ORM for Tests. """ __tablename__ = "tests" id = Column(Integer, primary_key=True) name = Column(String(50)) def __init__(self,name): """ Accepts a name for a test """ #TODO: Ensure valid input self.name = name class Question(Base): """ ORM for Questions. """ __tablename__ = "questions" id = Column(Integer, primary_key=True) test_id = Column(Integer, ForeignKey("tests.id")) question = Column(String) test = relation(Test, backref=backref('questions', order_by=id)) def __init__(self,test_id, question): """ Accepts a test_id and a question to sign that test """ #TODO: Ensure valid input self.question = question self.test_id = test_id class Answer(Base): """ ORM for Answers. """ __tablename__ = "answers" id = Column(Integer, primary_key=True) question_id = Column(Integer, ForeignKey("questions.id")) answer = Column(String) correct = Column(String(1), default='n') # y for correct n for not question = relation(Question, backref=backref('answers', order_by=id)) def __init__(self,question_id,answer,correct=0): """ Accepts a question_id and a answer to assign to that question. Optionally it accepts correct, y for correct, n for not Default for correct is n""" #TODO: Ensure vaild input self.question_id = question_id self.answer = answer self.correct = correct def setup_model(): Base.metadata.create_all(engine) # Create all tables # Session class is how we talk to the engine (database) global Session Session = sessionmaker(bind=engine) ######################################################################## # # # VIEW/CONTROLLER # # Will Seperate Later # # # ######################################################################## import cherrypy class WebTest(object): """ Cherrypy server root """ def __init__(self): setup_model() def header(self): """ Defines a header to be used for web pages... Should be temporary """ return "<html><head><title>pyWebTest</title></head><body>" def footer(self): """ Defines a footer to be used for web pages... Should also be temporary """ return "</body></html>" @cherrypy.expose() def index(self): """ Root page for pyWebTest server """ output = 'Begin Test <br />' session = Session() test = Test("network+") session.add(test) output = output + str(session.new) + '<br />' session.commit() output = output + str(session.new) + '<br />' print session.dirty return self.header() + output + self.footer() def main(): cherrypy.quickstart(WebTest()) return 0 if __name__ == '__main__': main() <END CODE> --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---