On Thu, Jan 02, 2003 at 05:15:23PM -0500, Tom Jenkins wrote: > ah i was thinking along different lines. i have a database connection, > should i : > - have a db connection instance in a module that everybody imports? > - do i subclass Publisher (say) and add get_dbconn() so you can do > get_publisher().get_dbconn()? > - do i throw the db connection into request and grab it from there? > - something else which i can't think of? I don't see any advantage in attaching it to the publisher or request object. For global shared objects we use a function, something like "from myapp.database import get_dbconn". If you are sure your application will never be multi-threaded you could just use a module global. A function seems to be more flexible though. > please note, these are off the cuff and may be stupid. Now I can sit > and analyze them and conclude that the first one is probably the best > way. or i could be wrong. it might not be a best practice in quixote. The nice thing about Quixote is that questions like this are usually questions about programming in Python rather than about using Quixote (at least IMHO). > but i wouldn't know simply because there isn't anything in place to > facilitate communication. Hmm, I thought the communication was flowing quite well. What's wrong with quixote-users@mems-exchange.org? I think most Quixote experts hang out here, the list is public and archived. I think you can even read it from Gmane. > now how about this scenario: I have a Department that has a list of > Agencies. In some AgencyUI we need some information from Department. > The url is myapp/department/1/agency/5/showSomeInfo. In Zope we'd use > acquisition to call the right methods from the department to which the > specific agency belongs (well actually in zope the above would be a pita > to get right). To paraphrase Jim Fulton, "acquisition is cool, until it > isn't". How do I handle it here? I think I would do something like this: # myapp.department module class DepartmentUI: def __init__(self, component): self.department = get_department(component) # careful with input! def agency(self, request): return AgencyUI(self.department, component) def _q_getname(request, component): return DepartmentUI(component) class AgencyUI: def __init__(self, department): self.department = department self.agency = None def _q_getname(self, request, component): self.agency = get_agency(self.department, component) return self # or something else def showSomeInfo(self, request): ... That's a little rough but hopefully enough to give you the idea. The key idea is that DepartmentUI passes the department object to AgencyUI. > my original post was not so much a "hey can somebody answer this" type > of post. it was meant to be more of a "what i would love to see is more > ways to communicate, to build the community, is there someplace i'm > missing where snippets, scripts, hints, lessons learned, traps, etc are > stored" type of message. I realized that. My response was a subtle attempt to indicate that quixote-users is a pretty good place to discuss using Quixote. Having a community supported site would be cool but I suspect the community is not large enough yet to support one. Neil