送達的文件這是我目前有我的定義龍捲風的web服務器:下載龍捲風網絡服務器
application = tornado.web.Application([
tornado.web.url(r"/server", MainHandler),
tornado.web.url(r"/(.*)", tornado.web.StaticFileHandler, { "path": scriptpath, "default_filename": "index.html" }),
])
的index.html是一個基於Web的圖形用戶界面的開始頁面。它將通過http:///服務器與後端服務器進行通信,並且gui向服務器發出的請求由MainHandler函數處理。
的目錄結構如下:
root_directory/
server.py
fileiwanttodownload.tar.gz
index.html
我希望能夠輸入到瀏覽器:
HTTP:///data/fileiwanttodownload.tar.gz
和將文件作爲常規文件下載發送給我。
我試圖做的是:
application = tornado.web.Application([
tornado.web.url(r"/server", MainHandler),
tornado.web.url(r"/data", tornado.web.StaticFileHandler, { "path": scriptpath }),
tornado.web.url(r"/(.*)", tornado.web.StaticFileHandler, { "path": scriptpath, "default_filename": "index.html" }),
])
但這不工作的那些可能很明顯,對於誰知道答案的原因。
我唯一的線索是以下錯誤消息:
Uncaught exception GET /data (192.168.4.168)
HTTPServerRequest(protocol='http', host='192.168.4.195:8888', method='GET', uri='/data', version='HTTP/1.1', remote_ip='192.168.4.168', headers={'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/601.3.9 (KHTML, like Gecko) Version/9.0.2 Safari/601.3.9', 'Host': '192.168.4.195:8888', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Connection': 'keep-alive', 'Accept-Language': 'en-us'})
Traceback (most recent call last):
File "/usr/local/lib/python3.4/dist-packages/tornado/web.py", line 1445, in _execute
result = yield result
File "/usr/local/lib/python3.4/dist-packages/tornado/gen.py", line 1008, in run
value = future.result()
File "/usr/local/lib/python3.4/dist-packages/tornado/concurrent.py", line 232, in result
raise_exc_info(self._exc_info)
File "<string>", line 3, in raise_exc_info
File "/usr/local/lib/python3.4/dist-packages/tornado/gen.py", line 267, in wrapper
result = func(*args, **kwargs)
TypeError: get() missing 1 required positional argument: 'path'
賓果。解決辦法是做「/ data /(.*)」 – ericg