gpt4 book ai didi

python - Tornado 服务器提供文件

转载 作者:太空宇宙 更新时间:2023-11-03 15:59:52 25 4
gpt4 key购买 nike

我知道如何提供静态文件/png 等,因为它们保存在某个 Web 静态路径下。

如何在路径(例如/usr/local/data/table.csv)处提供文件?

另外,我想知道是否可以显示页面明智的结果(分页),但我更关心提供任意位置文件+即使我从本地删除它们(我的意思是一旦上传/缓存),它们也会保留。 [但这可能是一个单独的问题]

最佳答案

在最基本的层面上,您需要读取文件并将其写入响应:

import os.path
from mimetypes import guess_type

import tornado.web
import tornado.httpserver

BASEDIR_NAME = os.path.dirname(__file__)
BASEDIR_PATH = os.path.abspath(BASEDIR_NAME)

FILES_ROOT = os.path.join(BASEDIR_PATH, 'files')


class FileHandler(tornado.web.RequestHandler):

def get(self, path):
file_location = os.path.join(FILES_ROOT, path)
if not os.path.isfile(file_location):
raise tornado.web.HTTPError(status_code=404)
content_type, _ = guess_type(file_location)
self.add_header('Content-Type', content_type)
with open(file_location) as source_file:
self.write(source_file.read())

app = tornado.web.Application([
tornado.web.url(r"/(.+)", FileHandler),
])

http_server = tornado.httpserver.HTTPServer(app)
http_server.listen(8080, address='localhost')
tornado.ioloop.IOLoop.instance().start()

(免责声明。这是一篇简短的文章,几乎肯定不会在所有情况下都有效,所以要小心。)

关于python - Tornado 服务器提供文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40442126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com