From: Eric R. <th...@er...> - 2004-11-16 21:27:36
|
I've been working on porting several apps over to the WSGI framework, and found minor differences in session handling that require code correction: The current WSGI implementation returns None for uninitialized Session variables, whereas WebKit would dump without a try...except pair. Using Webware/WebKit: session = self.session() try: id = session['userid'] except: id = None if id is None: """ Error """ else """ Generate Page """ Using WSGIKit: session = self.session() id = session._values['userid'] if id is None: """ Error """ else """ Generate Page """ This is fine, but session[] always returns None, so I have to use _values[]. Is this a bug or intended behavior? -- Eric Radman | http://eradman.com |
From: Ian B. <ia...@co...> - 2004-11-17 16:45:44
|
Eric Radman wrote: > I've been working on porting several apps over to the WSGI framework, > and found minor differences in session handling that require code > correction: > > The current WSGI implementation returns None for uninitialized Session > variables, whereas WebKit would dump without a try...except pair. > > Using Webware/WebKit: > > session = self.session() > try: > id = session['userid'] > except: > id = None > if id is None: > """ Error """ > else > """ Generate Page """ > > Using WSGIKit: > > session = self.session() > id = session._values['userid'] > if id is None: > """ Error """ > else > """ Generate Page """ > > This is fine, but session[] always returns None, so I have to use > _values[]. Is this a bug or intended behavior? It would be a bug. I forgot to put in a return for the __getitem__ method. Doh. Fixed in svn. -- Ian Bicking / ia...@co... / http://blog.ianbicking.org |
From: Chuck E. <Chu...@ya...> - 2004-11-17 18:27:21
|
On Tue, 16 Nov 2004 17:21:38 -0500, Eric Radman wrote: > I've been working on porting several apps over to the WSGI > framework, and found minor differences in session handling that > require code correction: > > The current WSGI implementation returns None for uninitialized > Session variables, whereas WebKit would dump without a try...except > pair. > > Using Webware/WebKit: > > > session =3D self.session() > try: > id =3D session['userid'] > except: > id =3D None > if id is None: > """ Error """ > else > """ Generate Page """ > > > Using WSGIKit: > > > session =3D self.session() > id =3D session._values['userid'] > if id is None: > """ Error """ > else > """ Generate Page """ > > > This is fine, but session[] always returns None, so I have to use > _values[]. Is this a bug or intended behavior? Intended. In cases where Webware objects provide dictionary-like access= (foo['bar']), they act like Python dictionaries: a KeyError is raised if= the key does not exist. And typically a get() or getFoo() method is= provided which can accept a default value to return if the key does not= exist. I don't see the point in making something look like a Python dictionary, but= act differently. -Chuck |