仔细查看demos,TornadoGists和other gist snippets(基于this previous question),我没有找到与标准SimpleHTTPServer
相当的任何代码Python中的库。我正在寻找一个可以处理并发请求的非常小的Web服务器,其中包含SimpleHTTPServer
所有用于从启动目录提供文件的样板。
答案 0 :(得分:2)
更新:从Tornado 3开始,使用内置的StaticFileHandler。
Tornado并非真正用于提供静态文件。如果这会看到任何负载,你应该使用nginx,或类似的东西。如果它不胜,则可能更容易使用SimpleHTTPServer
。
那就是说,写一个是微不足道的:
import os.path
import mimetypes
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
class FileHandler(tornado.web.RequestHandler):
def get(self, path):
if not path:
path = 'index.html'
if not os.path.exists(path):
raise tornado.web.HTTPError(404)
mime_type = mimetypes.guess_type(path)
self.set_header("Content-Type", mime_type[0] or 'text/plain')
outfile = open(path)
for line in outfile:
self.write(line)
self.finish()
def main():
tornado.options.enable_pretty_logging()
application = tornado.web.Application([
(r"/(.*)", FileHandler),
])
http_server = tornado.httpserver.HTTPServer(application)
http_server.listen(8888)
tornado.ioloop.IOLoop.instance().start()
if __name__ == "__main__":
main()
这只是为了让你开始;如果你要使用它,你应该确保你不能走上文件系统并访问任何文件。此外,脚本目前服务自己,这有点奇怪。