Multiple modules with database access + general app design?

Robin Haswell rob at digital-crocus.com
Thu Jan 19 10:04:34 EST 2006


On Thu, 19 Jan 2006 15:43:58 +0100, Daniel Dittmar wrote:

> Robin Haswell wrote:
>> On Thu, 19 Jan 2006 14:37:34 +0100, Daniel Dittmar wrote:
>>>If you use a threading server, you can't put the connection object into 
>>>the module. Modules and hence module variables are shared across 
>>>threads. You could use thread local storage, but I think it's better to 
>>>pass the connection explicitely as a parameter.
>> 
>> 
>> Would you say it would be better if in every thread I did:
>> 
>> 	m = getattr(modules, module)
>> 	b.db = db
>> 
>> 	...
>> 
>> 	def Foo():
>> 		c = db.cursor()
>> 
> 
> I was thinking (example from original post):
> 
> 	import modules
> 	modules.foo.Bar(db.cursor ())
> 
>          # file modules.foo
>          def Bar (cursor):
>              cursor.execute (...)

Ah I see.. sounds interesting. Is it possible to make any module variable
local to a thread, if set within the current thread? Your method, although
good, would mean revising all my functions in order to make it work?

Thanks




More information about the Python-list mailing list