from __future__ import print_function # The following code is not part of Rocket but was added to # web2py for testing purposes. def demo_app(environ, start_response): global static_folder import os types = {'htm': 'text/html', 'html': 'text/html', 'gif': 'image/gif', 'jpg': 'image/jpeg', 'png': 'image/png', 'pdf': 'applications/pdf'} if static_folder: if not static_folder.startswith('/'): static_folder = os.path.join(os.getcwd(), static_folder) path = os.path.join( static_folder, environ['PATH_INFO'][1:] or 'index.html') type = types.get(path.split('.')[-1], 'text') if os.path.exists(path): try: data = open(path, 'rb').read() start_response('200 OK', [('Content-Type', type)]) except IOError: start_response('404 NOT FOUND', []) data = '404 NOT FOUND' else: start_response('500 INTERNAL SERVER ERROR', []) data = '500 INTERNAL SERVER ERROR' else: start_response('200 OK', [('Content-Type', 'text/html')]) data = '

Hello from Rocket

' return [data] def demo(): from optparse import OptionParser parser = OptionParser() parser.add_option("-i", "--ip", dest="ip", default="127.0.0.1", help="ip address of the network interface") parser.add_option("-p", "--port", dest="port", default="8000", help="post where to run web server") parser.add_option("-s", "--static", dest="static", default=None, help="folder containing static files") (options, args) = parser.parse_args() global static_folder static_folder = options.static print('Rocket running on %s:%s' % (options.ip, options.port)) r = Rocket((options.ip, int(options.port)), 'wsgi', {'wsgi_app': demo_app}) r.start() if __name__ == '__main__': demo()