example in rocket.py
This commit is contained in:
+1
-1
Submodule gluon/packages/dal updated: 598b2e999f...0515e3b392
@@ -1870,3 +1870,46 @@ class WSGIWorker(Worker):
|
||||
sock_file.close()
|
||||
|
||||
# Monolithic build...end of module: rocket/methods/wsgi.py
|
||||
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 = '<html><body><h1>Hello from Rocket Web Server</h1></body></html>'
|
||||
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()
|
||||
|
||||
Reference in New Issue
Block a user