Maybe I'm getting way off track here, but I'd like to get my site back working today.
Should framework.py look like this? (This is based on Nick's prior blog: http://blog.notdot.net/2010/01/Webapps-on-App-Engine-part-1-Routing) I'm all for learning, but I need to get my website fixed ASAP without the DeadlineExceeded errors. Ideally, I wouldn't have to inventor or write my own framework to do that??? framework.py??? - attempt#2 ===================== import re class WSGILazyLoader(object): def __init__(self, fullname): self.modulename, sep, self.objname = fullname.rpartition('.') self.obj = None def __call__(self, environ, start_response): if not self.obj: __import__(self.modulename, globals(), locals()) module = sys.modules[self.modulename] self.obj = module.__dict__[self.objname] return self.obj(environ, start_response) class WSGIRouter(object): def __init__(self): self.routes = [] def connect(self, template, handler, **kwargs): """Connects URLs matching a template to a handler application. Args: template: A template string, consisting of literal text and template expressions of the form {label[: regex]}, where label is the mandatory name of the expression, and regex is an optional regular expression. handler: A WSGI application to execute when the template is matched. **kwargs: Additional keyword arguments to pass along with those parsed from the template. """ route_re = re.compile(template_to_regex(template)) self.routes.append((route_re, handler, kwargs)) import re var_regex = re.compile(r''' \{ # The exact character "{" (\w+) # The variable name (restricted to a-z, 0-9, _) (?::([^}]+))? # The optional :regex part \} # The exact character "}" ''', re.VERBOSE) def template_to_regex(template): regex = '' last_pos = 0 for match in var_regex.finditer(template): regex += re.escape(template[last_pos:match.start()]) var_name = match.group(1) expr = match.group(2) or '[^/]+' expr = '(?P<%s>%s)' % (var_name, expr) regex += expr last_pos = match.end() regex += re.escape(template[last_pos:]) regex = '^%s$' % regex return regex Errors: Traceback (most recent call last): File "C:\Program Files (x86)\Google\google_appengine\google\appengine \tools\dev_appserver.py", line 3206, in _HandleRequest self._Dispatch(dispatcher, self.rfile, outfile, env_dict) File "C:\Program Files (x86)\Google\google_appengine\google\appengine \tools\dev_appserver.py", line 3149, in _Dispatch base_env_dict=env_dict) File "C:\Program Files (x86)\Google\google_appengine\google\appengine \tools\dev_appserver.py", line 525, in Dispatch base_env_dict=base_env_dict) File "C:\Program Files (x86)\Google\google_appengine\google\appengine \tools\dev_appserver.py", line 2402, in Dispatch self._module_dict) File "C:\Program Files (x86)\Google\google_appengine\google\appengine \tools\dev_appserver.py", line 2312, in ExecuteCGI reset_modules = exec_script(handler_path, cgi_path, hook) File "C:\Program Files (x86)\Google\google_appengine\google\appengine \tools\dev_appserver.py", line 2208, in ExecuteOrImportScript exec module_code in script_module.__dict__ File "c:\GoogleAppEngine\olexe3\main.py", line 443, in <module> main() File "c:\GoogleAppEngine\olexe3\main.py", line 440, in main run_wsgi_app(application) File "C:\Program Files (x86)\Google\google_appengine\google\appengine \ext\webapp\util.py", line 97, in run_wsgi_app run_bare_wsgi_app(add_wsgi_middleware(application)) File "C:\Program Files (x86)\Google\google_appengine\google\appengine \ext\webapp\util.py", line 115, in run_bare_wsgi_app result = application(env, _start_response) TypeError: 'WSGIRouter' object is not callable Thanks, Neal -- You received this message because you are subscribed to the Google Groups "Google App Engine" 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/google-appengine?hl=en.
