(self, environ, start_response)
The bottle WSGI-interface.
The bottle WSGI-interface.
The bottle WSGI - interface .
def wsgi(self, environ, start_response):
        """ The bottle WSGI-interface. """
        try:
            out = self._cast(self._handle(environ))
            # rfc2616 section 4.3
            if response._status_code in (100, 101, 204, 304)\
            or environ['REQUEST_METHOD'] == 'HEAD':
                if hasattr(out, 'close'): out.close()
                out = []
            start_response(response._status_line, response.headerlist)
            return out
        except (KeyboardInterrupt, SystemExit, MemoryError):
            raise
        except Exception:
            if not self.catchall: raise
            err = '<h1>Critical error while processing request: %s</h1>' \
                  % html_escape(environ.get('PATH_INFO', '/'))
            if DEBUG:
                err += '<h2>Error:</h2>\n<pre>\n%s\n</pre>\n' \
                       '<h2>Traceback:</h2>\n<pre>\n%s\n</pre>\n' \
                       % (html_escape(repr(_e())), html_escape(format_exc()))
            environ['wsgi.errors'].write(err)
            headers = [('Content-Type', 'text/html; charset=UTF-8')]
            start_response('500 INTERNAL SERVER ERROR', headers)
            return [tob(err)]
def wsgi ( self , environ , start_response ) : try : out = self . _cast ( self . _handle ( environ ) ) # rfc2616 section 4.3 if response . _status_code in ( 100 , 101 , 204 , 304 ) or environ [ 'REQUEST_METHOD' ] == 'HEAD' : if hasattr ( out , 'close' ) : out . close ( ) out = [ ] start_response ( response . _status_line , response . headerlist ) return out except ( KeyboardInterrupt , SystemExit , MemoryError ) : raise except Exception : if not self . catchall : raise err = '<h1>Critical error while processing request: %s</h1>' % html_escape ( environ . get ( 'PATH_INFO' , '/' ) ) if DEBUG : err += '<h2>Error:</h2>\n<pre>\n%s\n</pre>\n' '<h2>Traceback:</h2>\n<pre>\n%s\n</pre>\n' % ( html_escape ( repr ( _e ( ) ) ) , html_escape ( format_exc ( ) ) ) environ [ 'wsgi.errors' ] . write ( err ) headers = [ ( 'Content-Type' , 'text/html; charset=UTF-8' ) ] start_response ( '500 INTERNAL SERVER ERROR' , headers ) return [ tob ( err ) ]