Yes, that should do it. Anthony
On Monday, December 15, 2014 3:35:01 PM UTC-5, Mark Graves wrote: > > Thanks Anthony, > > I saw your web2py con talk at depaul and really appreciated your > understanding of the inner workings. > > Would best practice be to just import current then define db = current.db? > > That works correctly as long as it is not a top level variable correct? > > -Mark > > On Monday, December 15, 2014 9:23:42 AM UTC-6, Anthony wrote: >> >> You can also just import current in the module and then refer to it >> directly within your function (i.e., no need to pass current as an argument >> to the function). >> >> Anthony >> >> On Sunday, December 14, 2014 11:07:48 PM UTC-5, Mark Graves wrote: >>> >>> Right, I knew it looked too easy. >>> >>> Thanks, Anthony! >>> >>> Would it be viable to say in models (or controllers): >>> >>> from gluon import current >>> current.db = db >>> >>> Then in modules: >>> >>> def my_function(current): >>> db = current.db >>> session = current.session >>> request = current.request >>> response = current.response >>> >>> Then perhaps futher mimic locals with a decorator by returning them to >>> the function and/or changing the signature? (Or would that run into the >>> same threading problem? >>> >>> Trying to avoid repeating myself... >>> >>> >>> >>> >>> >>> On Sunday, December 14, 2014 8:32:55 PM UTC-6, Anthony wrote: >>>> >>>> No, the book warns to avoid that approach: >>>> http://www.web2py.com/books/default/chapter/29/04/the-core#Accessing-the-API-from-Python-modules >>>> >>>> You cannot assign the thread local object to a top-level variable in >>>> the module, as it will only be assigned once upon first import. >>>> >>>> Anthony >>>> >>>> On Sunday, December 14, 2014 7:32:29 PM UTC-5, Mark Graves wrote: >>>>> >>>>> Hey everyone, >>>>> >>>>> I could use a sanity check here from the community. >>>>> >>>>> In a controller I get a record, then, I want to pass do some database >>>>> calls from a module. >>>>> >>>>> It seems that the least code I could write would be in models: >>>>> >>>>> from gluon import current >>>>> current.db = db >>>>> >>>>> Then in the module at the top >>>>> >>>>> from gluon import current >>>>> db = current.db >>>>> >>>>> The method I was using was passing the objects in directly to the >>>>> function defined in the module, but that was overly repetitive. No >>>>> classes, just functions. >>>>> >>>>> Can anyone see where I would run into problems? Is this thread safe? >>>>> >>>>> Would it be better to instantiate a class with the handler similar to >>>>> what I've seen elsewhere regarding model-less apps? >>>>> >>>>> Thanks in advance! >>>>> >>>>> -Mark >>>>> >>>>> >>>>> -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.

