3 Small wsgiref based web server. Takes a path to serve from and an
4 optional port number (defaults to 8000), then tries to serve files.
5 Mime types are guessed from the file names, 404 errors are thrown
6 if the file is not found. Used for the make serve target in Doc.
11 from wsgiref
import simple_server
, util
13 def app(environ
, respond
):
15 fn
= os
.path
.join(path
, environ
['PATH_INFO'][1:])
16 if '.' not in fn
.split(os
.path
.sep
)[-1]:
17 fn
= os
.path
.join(fn
, 'index.html')
18 type = mimetypes
.guess_type(fn
)[0]
20 if os
.path
.exists(fn
):
21 respond('200 OK', [('Content-Type', type)])
22 return util
.FileWrapper(open(fn
))
24 respond('404 Not Found', [('Content-Type', 'text/plain')])
27 if __name__
== '__main__':
29 port
= int(sys
.argv
[2]) if len(sys
.argv
) > 2 else 8000
30 httpd
= simple_server
.make_server('', port
, app
)
31 print "Serving %s on port %s, control-C to stop" % (path
, port
)
34 except KeyboardInterrupt:
35 print "\b\bShutting down."