anand thanks for the helper class.. but it is not working...
the middleware is not getting processed....
do you know what is wrong?
is this the right way of doing it?
subdomain app bt/code.py
from beaker.middleware import SessionMiddleware
def beak_session_mw(app):
return SessionMiddleware(app, **options)
app = web.application(urls, globals())
app.add_processor(middleware(beak_session_mw))
main app file
from bt.code import app
mapping = ("www.XXXX.com", app)
x = web.subdomain_application(mapping)
if __name__ == "__main__":
x.run()
http://0.0.0.0:8080/
Traceback (most recent call last):
File "/home/mark/work/common/web/application.py", line 211, in wsgi
result = self.handle_with_processors()
File "/home/mark/work/common/web/application.py", line 183, in
handle_with_processors
return process(self.processors)
File "/home/mark/work/common/web/application.py", line 180, in process
return self.handle()
File "/home/mark/work/common/web/application.py", line 486, in handle
return app.handle()
File "/home/mark/work/common/web/application.py", line 172, in handle
return self._delegate(fn, self.fvars, args)
File "/home/mark/work/common/web/application.py", line 361, in _delegate
return handle_class(cls)
File "/home/mark/work/common/web/application.py", line 336, in
handle_class
return tocall(*args)
File "/home/mark/work/bt/user.py", line 192, in proxyfunc
web.ctx.environ['session'] = web.ctx.environ['beaker.session']
KeyError: 'beaker.session'
On Wed, Nov 19, 2008 at 6:57 AM, Anand Chitipothu <[EMAIL PROTECTED]>wrote:
>
> sorry, there was a typo. Here is the corrected version.
>
> import web
>
> class middleware:
> """Helper to convert wsgi middleware to application processor.
> Usage:
>
> app.add_processor(middleware(mw))
> """
> count = 0
> def __init__(self, middleware):
> self.name = self._get_name()
> self.wsgi = middleware(self.fake_wsgi_app)
>
> def _get_name(self):
> middleware.count += 1
> return "_wsgi_middleware_handler_%d" % (middleware.count)
>
> def __call__(self, handler):
> web.ctx[self.name] = handler
>
> environ = web.ctx.environ
> def start_response(status, headers):
> web.ctx.status = status
> web.ctx.headers = headers
> return self.wsgi(environ, start_response)
>
> def fake_wsgi_app(self, environ, start_response):
> handler = web.ctx[self.name]
> try:
> out = handler()
> except web.HTTPError, e:
> out = e.data
> start_response(web.ctx.status, web.ctx.headers)
> return out
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"web.py" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/webpy?hl=en
-~----------~----~----~----~------~----~------~--~---