0

我创建了小型 django 项目来服务音乐。一切都通过 django,甚至是流媒体部分(项目真的很小,最多 2-3 个用户)。

我现在想让项目独立,所以我使用 tornado 作为网络服务器。我正在使用以下内容:

os.environ['DJANGO_SETTINGS_MODULE'] = 'project.settings'
wsgi_app = tornado.wsgi.WSGIContainer(
    django.core.handlers.wsgi.WSGIHandler())

tornado_app = tornado.web.Application([
    (r'/static/(.*)', tornado.web.StaticFileHandler, {'path': STATIC_DIR}),
    (r'.*', tornado.web.FallbackHandler, dict(fallback=wsgi_app)),
])
server = tornado.httpserver.HTTPServer(tornado_app)                                                                                                      
server.listen(8888)
tornado.ioloop.IOLoop.instance().start()

虽然 Tornado 似乎缓冲了输出,因此无法播放流媒体音乐。有没有办法改变这种行为?或者 python 中是否有另一个网络服务器可以同时为 wsgi 应用程序和静态文件提供服务?

编辑:经过一些研究,我得出结论,问题很可能在于WSGIContainer. 似乎在响应的定义中WSGIContainer被读入缓冲区,然后写入客户端。因此,与其在原版的基础上滚动我自己WSGIContainer的,有没有更好的方法来做到这一点?

4

1 回答 1

0

这个问题来看,tornado 似乎不是我需要的合适服务器。我可能会使用开箱即用的 CherryPy。

于 2013-02-12T22:34:35.240 回答