Is this a turbogears app? or just your stand alone app?


On 10/28/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
>
> I just started experimenting with .4 last night, and I'm really
> jazzed. The tutorials have been helpful, but I'm struggling to figure
> out how to bridge the gap between the tutorial fragments and a real-
> world application.
>
> So far, I've got a little idea working, and I'm hoping to get some
> feedback if I'm working in the right direction. I'm trying to
> encapsulate my SA logic in its own module and work with these objects
> in my programs.
>
> Below is a very simplified example of what I'm trying to do. I could
> be handling my sessions, metadata, and tables poorly/inefficiently,
> and I'd love some feedback where it could be better.
>
> One glaring problem is the handling of the session information. I
> tried to put it into a __get_session() method of ModelHandler, but I
> was having trouble getting it working when called from a subclass. (b/
> c User has no method __get_session())
>
> It also seems that the four lines under my classes (creating the
> engine, metadata, mapping, etc.) could be put into the constructor of
> my superclass, but I'm not sure how to refrerence it yet.
>
> Thanks in advance - I'm really looking forward to diving deeper with
> SA!
>
> *** Models.py ***
>
> from sqlalchemy import *
> from sqlalchemy.orm import mapper
> from sqlalchemy.orm import sessionmaker
>
> class ModelHandler(object):
>     def save(self):
>         # This session stuff should probably be handled by a private
> method
>         # but I'm having trouble getting it to work when save is
> subclassed()
>         Session = sessionmaker(bind=db, autoflush=True,
> transactional=True)
>         session = Session()
>         session.save(self)
>         session.commit()
>         print "Debugging Statement: Saved User"
>
> class User(ModelHandler):
>     def __init__(self, name, fullname, password):
>         self.name = name
>         self.fullname = fullname
>         self.password = password
>
> # There should be some tidy place to put these in my objects
> db = create_engine('postgres://apache:@localhost:5432/test')
> metadata = MetaData(db)
> users_table = Table('users', metadata, autoload=True)
> mapper(User, users_table)
>
>
> >>> from models import *
> >>> new_user = User('wendy', 'Wendy Williams', 'foobar')
> >>> new_user.save()
>
>
> >
>


-- 
-- 
Vim auto completion for python
http://lucasmanual.com/mywiki/FrontPage#head-8ce19b13e89893059e126b719bebe4ee32fe103c
TurboGears from start to finish:
http://www.lucasmanual.com/mywiki/TurboGears

--~--~---------~--~----~------------~-------~--~----~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to