Miniwebserver: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Python: Logging) |
(Python >> Ruby :-)) |
||
Zeile 1: | Zeile 1: | ||
[[Category:Ruby]] [[Category:Python]] | [[Category:Ruby]] [[Category:Python]] | ||
=Python= | =Python (base library)= | ||
<source lang="python"> | |||
#!/usr/bin/env python | |||
import sys | |||
import os | |||
from SocketServer import ThreadingMixIn | |||
from BaseHTTPServer import HTTPServer | |||
from SimpleHTTPServer import SimpleHTTPRequestHandler | |||
class ThreadingHTTPServer(ThreadingMixIn, HTTPServer): | |||
pass | |||
if len(sys.argv) != 3: | |||
print "Usage: %s <port> <dir>" % (sys.argv[0],) | |||
sys.exit() | |||
address = ('', int(sys.argv[1])) | |||
server = ThreadedHTTPServer(address, SimpleHTTPRequestHandler) | |||
os.chdir(sys.argv[2]) | |||
try: | |||
server.serve_forever() | |||
except KeyboardInterrupt: | |||
pass | |||
</source> | |||
=Python (Twisted)= | |||
<source lang="python"> | <source lang="python"> |
Version vom 14. November 2007, 20:47 Uhr
Python (base library)
#!/usr/bin/env python
import sys
import os
from SocketServer import ThreadingMixIn
from BaseHTTPServer import HTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler
class ThreadingHTTPServer(ThreadingMixIn, HTTPServer):
pass
if len(sys.argv) != 3:
print "Usage: %s <port> <dir>" % (sys.argv[0],)
sys.exit()
address = ('', int(sys.argv[1]))
server = ThreadedHTTPServer(address, SimpleHTTPRequestHandler)
os.chdir(sys.argv[2])
try:
server.serve_forever()
except KeyboardInterrupt:
pass
Python (Twisted)
#!/usr/bin/env python
import sys
from twisted.python import log
from twisted.internet import reactor
from twisted.web import server, static
if len(sys.argv) != 3:
print "Usage: %s <port> <dir>" % (sys.argv[0],)
sys.exit()
root = static.File(sys.argv[2])
site = server.Site(root)
reactor.listenTCP(int(sys.argv[1]), site)
log.startLogging(sys.stderr)
reactor.run()
Ruby
#!/usr/local/bin/ruby
require 'webrick'
include WEBrick
if ARGV.size != 2
puts "Usage: #{$0} <port> <dir>"
exit
end
s = HTTPServer.new(
:Port => ARGV[0].to_i,
:DocumentRoot => ARGV[1]
)
trap("INT"){ s.shutdown }
s.start