annotate wsgintegrate/server.py @ 23:01b0ad159fe3

add tornado server
author Jeff Hammel <k0scist@gmail.com>
date Sun, 27 Jul 2014 13:17:47 -0700
parents caf763fc1c7d
children 1ad7f99f588d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
ec815b7cb142 initial commit of wsgintegrate
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
1 """
ec815b7cb142 initial commit of wsgintegrate
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
2 front-ends for various WSGI servers
ec815b7cb142 initial commit of wsgintegrate
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
3 """
ec815b7cb142 initial commit of wsgintegrate
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
4
8
5c488e3ce533 use correct factory
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
5 from factory import WSGIfactory
0
ec815b7cb142 initial commit of wsgintegrate
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
6
20
caf763fc1c7d front end more servers
Jeff Hammel <k0scist@gmail.com>
parents: 8
diff changeset
7 __all__ = ['wsgiref', 'servers', 'paster']
caf763fc1c7d front end more servers
Jeff Hammel <k0scist@gmail.com>
parents: 8
diff changeset
8
23
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
9
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
10 ### wsgiref
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
11
0
ec815b7cb142 initial commit of wsgintegrate
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
12 def wsgiref(app, host='0.0.0.0', port=80):
23
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
13 from wsgiref import simple_server
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
14 server = simple_server.make_server(host=host, port=int(port), app=app)
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
15 server.serve_forever()
0
ec815b7cb142 initial commit of wsgintegrate
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
16
20
caf763fc1c7d front end more servers
Jeff Hammel <k0scist@gmail.com>
parents: 8
diff changeset
17 servers = {'wsgiref': wsgiref}
caf763fc1c7d front end more servers
Jeff Hammel <k0scist@gmail.com>
parents: 8
diff changeset
18
23
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
19
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
20 ### paste
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
21
20
caf763fc1c7d front end more servers
Jeff Hammel <k0scist@gmail.com>
parents: 8
diff changeset
22 try:
23
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
23 from paste import httpserver
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
24 def paste_server(app, host='0.0.0.0', port=80):
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
25 httpserver.serve(app, host=host, port=port)
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
26 servers['paste'] = paste_server
20
caf763fc1c7d front end more servers
Jeff Hammel <k0scist@gmail.com>
parents: 8
diff changeset
27 except ImportError:
23
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
28 print ("Not adding paste.httpserver; not installed")
20
caf763fc1c7d front end more servers
Jeff Hammel <k0scist@gmail.com>
parents: 8
diff changeset
29
0
ec815b7cb142 initial commit of wsgintegrate
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
30 def paster(global_conf, **kw):
23
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
31 """factory for paster"""
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
32 return WSGIfactory(**kw)
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
33
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
34
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
35 ### tornado
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
36 ### http://www.tornadoweb.org/en/stable/httpserver.html
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
37 ### http://www.tornadoweb.org/en/stable/httputil.html#tornado.httputil.HTTPServerRequest
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
38 ### unfinished
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
39
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
40 try:
20
caf763fc1c7d front end more servers
Jeff Hammel <k0scist@gmail.com>
parents: 8
diff changeset
41
23
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
42 import tornado.httpserver
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
43 import tornado.ioloop
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
44
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
45 def handle_request(request):
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
46 message = "You requested %s\n" % request.uri
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
47 request.connection.write_headers(
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
48 httputil.ResponseStartLine('HTTP/1.1', 200, 'OK'),
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
49 {"Content-Length": str(len(message))})
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
50 request.connection.write(message)
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
51 request.connection.finish()
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
52 #http_server = tornado.httpserver.HTTPServer(handle_request)
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
53 #http_server.listen(8888)
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
54 #tornado.ioloop.IOLoop.instance().start()
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
55 except ImportError:
01b0ad159fe3 add tornado server
Jeff Hammel <k0scist@gmail.com>
parents: 20
diff changeset
56 pass