[Twisted-web] Re: Application variables?

Nicola Larosa nico at tekNico.net
Fri Apr 2 02:39:10 MST 2004


> That is, where do I declare and access variables to hold information that 
> is to be shared by all requests?

Look at twisted/web/server.py , the second to last class is the Session one
(in v.1.1.1).

You can see that the constructor has a "sessionNamespaces" dictionary
attribute, nowhere used in the Twisted code, that looks like the right place
(undocumented, that I know of).

Here's how I use it:

sessionNSs = request.getSession().sessionNamespaces
appSect1Session = sessionNSs.setdefault('appSect1', {})
appSect1Session['whatever'] = 'whatever'

Now appSect1Session is another dictionary where a given app section can put
whatever objects it wants, and get to them later.

sessionNSs = request.getSession().sessionNamespaces
try:
    whatever = sessionNSs['appSect1']['whatever']
except KeyError:
    whatever = None

or something.

(The browser will have to support cookies for this to work, obviously.)


-- 
Nicola Larosa - nico at tekNico.net

"...programs must be written for people to read,
and only incidentally for machines to execute."
 -- Alan J. Perlis, SICP





More information about the Twisted-web mailing list