What steps will reproduce the problem?
1. Download and unpack webapp2-1.6.3.zip 176kB
2. Create a new GAE project and copy webapp2.py and webapp2_extras folder from
step 1 into project root
3. Sample code trying to test sessions (put this in a file main.py):
import webapp2
from google.appengine.ext.webapp import util
from webapp2_extras import sessions
class BaseHandler(webapp2.RequestHandler):
def dispatch(self):
# Get a session store for this request.
self.session_store = sessions.get_store(request=self.request)
try:
# Dispatch the request.
webapp2.RequestHandler.dispatch(self)
finally:
# Save all sessions.
self.session_store.save_sessions(self.response)
@webapp2.cached_property
def session(self):
# Returns a session using the default cookie key.
return self.session_store.get_session()
class MainHandler(BaseHandler):
def get(self):
self.session['foo'] = 'bar'
self.response.out.write('Hello world!')
def main():
application = webapp2.WSGIApplication([('/', 'main.MainHandler')],
debug=True)
util.run_wsgi_app(application)
if __name__ == '__main__':
main()
What is the expected output? What do you see instead?
expected: hello world
observed:
Traceback (most recent call last):
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 3858, in _HandleRequest
self._Dispatch(dispatcher, self.rfile, outfile, env_dict)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 3792, in _Dispatch
base_env_dict=env_dict)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 580, in Dispatch
base_env_dict=base_env_dict)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2918, in Dispatch
self._module_dict)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2822, in ExecuteCGI
reset_modules = exec_script(handler_path, cgi_path, hook)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2702, in ExecuteOrImportScript
exec module_code in script_module.__dict__
File "C:\Users\siddjain\PycharmProjects\webapp2_test\main.py", line 51, in <module>
main()
File "C:\Users\siddjain\PycharmProjects\webapp2_test\main.py", line 47, in main
util.run_wsgi_app(application)
File "C:\Program Files\Google\google_appengine\google\appengine\ext\webapp\util.py", line 98, in run_wsgi_app
run_bare_wsgi_app(add_wsgi_middleware(application))
File "C:\Program Files\Google\google_appengine\google\appengine\ext\webapp\util.py", line 116, in run_bare_wsgi_app
result = application(env, _start_response)
File "C:\Users\siddjain\PycharmProjects\webapp2_test\webapp2.py", line 1075, in __call__
return self._internal_error(e, environ, start_response)
File "C:\Users\siddjain\PycharmProjects\webapp2_test\webapp2.py", line 1067, in __call__
rv = self.handle_exception(request, response, e)
File "C:\Users\siddjain\PycharmProjects\webapp2_test\webapp2.py", line 1061, in __call__
rv = self.router.dispatch(request, response)
File "C:\Users\siddjain\PycharmProjects\webapp2_test\webapp2.py", line 875, in default_dispatcher
return factory(request, response)
File "C:\Users\siddjain\PycharmProjects\webapp2_test\webapp2.py", line 327, in factory
return handler.dispatch()
File "C:\Users\siddjain\PycharmProjects\webapp2_test\main.py", line 24, in dispatch
self.session_store = sessions.get_store(request=self.request)
File "C:\Users\siddjain\PycharmProjects\webapp2_test\webapp2_extras\sessions.py", line 397, in get_store
store = request.registry[key] = factory(request)
File "C:\Users\siddjain\PycharmProjects\webapp2_test\webapp2_extras\sessions.py", line 272, in __init__
self.config = request.app.config[self.config_key]
AttributeError: 'WSGIApplication' object has no attribute 'config'
What version of the product are you using? On what operating system?
webapp2-1.6.3.zip 176kB, Windows Vista
Please provide any additional information below.
this is not the first time I have tried to use webapp2 or tipfy, and found that
its broken out-of-the-box