1

嘿,我正在努力在我的服务器上使用 Python 和 Tornado 下载一个静态文件。

class templateHandler(tornado.web.RequestHandler):
def get(self):
    self.write("""
    <a href="/download"> Download </a>
    """)

application = tornado.web.Application([
(r"/", MyFormHandler),
(r"/results", MyFormHandler),
(r"/multi", MyFileHandler),
(r"/upload",MyFileHandler),
(r'/download',tornado.web.StaticFileHandler,{'path':"L:/Template.csv"}),
(r'/template', templateHandler),
(r"/SFA",SFAHandler),
])

有人可以帮我吗。我不是 100% 确定文件处理程序是如何工作的。谢谢你的帮助!

编辑:这是错误消息:

ERROR:root:Uncaught exception GET /download (10.18.4.160)
HTTPRequest(protocol='http', host='IPadress', method='GET', uri='/download', version='HTTP/1.1', remote_ip='IPaddress', body='', headers={'Connection': 'keep-alive', 'Accept-Language': 'en-US,en;q=0.5', 'Accept-Encoding': 'gzip, deflate', >'Referer': 'IPadress/template', 'Host': 'IPaddress', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'User-Agent': 'Mozilla/5.0 (Windows NT 5.1; rv:17.0) Gecko/20100101 Firefox/17.0'})
Traceback (most recent call last):
  File "WEB.PY LOCATION", line >988, in _execute
    getattr(self, self.request.method.lower())(*args, **kwargs)
TypeError: get() takes at least 2 arguments (1 given)
ERROR:root:500 GET /download (IPaddress) 0.00ms
4

1 回答 1

1

我认为它与 StaticFileHandler.get 需要一个路径有关,通常它不提供单个文件,而是提供一个文件目录,并采用一个文件名,我现在没有时间深入研究它但是它应该是这样的

(r'/download/(.*)',tornado.web.StaticFileHandler,{'path':"L:/"}),

现在如果你去

/download/Template.csv它应该为它服务。抱歉,我现在没有时间查看来源以确认

于 2013-07-15T20:29:01.657 回答