On Tue, Jul 15, 2008 at 1:42 PM, Etienne Robillard
<[EMAIL PROTECTED]> wrote:
>
> On Mon, 14 Jul 2008 16:09:18 -0400
> Etienne Robillard <[EMAIL PROTECTED]> wrote:
>
>>
>>
>> Hi all,
>>
>> I'd like to have your input and comments on using decorators
>> functions for adding extra options to the request.environ object.
>>
>> For instance, here's a decorator whichs adds a "scoped" session
>> object into request.environ:
>>
>> def with_session(engine=None):
>>     """
>>     Decorator function for attaching a `Session` instance
>>     as a keyword argument in `request.environ`.
>>     """
>>     def decorator(view_func):
>>         def _wrapper(request, *args, **kwargs):
>>             scoped_session.set_session(engine)
>>             request.environ['_scoped_session'] = getattr(scoped_session, 
>> 'sessio
>>             return view_func(request, *args, **kwargs)
>>         return wraps(view_func)(_wrapper)
>>     return decorator
>>
>> Then it can be used as follows:
>>
>> @with_session(engine=engine):
>> def view_blog_list(request, *args, **kwargs):
>>     # get the local session object for this
>>     # request (thread-local)
>>     sess = request.environ['_scoped_session']
>>     # do stuff with the Session object here...
>>     ...
>>
>> Is this a good approach, or can this be adapted to work
>> in multithreaded environments ?
>>
>> For details, you can checkout the source code of notmm, which
>> holds the current implementation of the with_session decorator:
>>
>> $ hg clone -r tip http://gthc.org/projects/notmm/repo/ notmm
>> For more details about notmm, please see here: 
>> http://gthc.org/projects/notmm/
>>
>> Thanks and Regards,
>>
>> Etienne
>
> Hi,
>
> I'm forwarding this on pylons-discuss. I'd be interested in
> feedback on how to integrate SQLAlchemy in Pylons. Can this
> decorator (with_session) works on/with Pylons controllers too ?

This is the "standard" way.
http://wiki.pylonshq.com/display/pylonsdocs/Using+SQLAlchemy+with+Pylons

It puts a scoped session object at myapp.model.meta.Session

I suppose the decorator would work, but it's not typical for an action
to read things directly from the environment unless it's something
Pylons doesn't support any other way.

-- 
Mike Orr <[EMAIL PROTECTED]>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to