在Tornado应用中使用Django作为中间件

3 投票
1 回答
1672 浏览
提问于 2025-04-16 15:36

我正在尝试在 Django 中使用 tornadio(一个用于 Python 的 socket.io)。请问有没有办法在 tornado 中做到类似的事情(把 Django 当作中间件来运行),或者我能否在 Django 中直接访问 tornadio(通过取消注释第二个应用程序定义,直接连接到 Django)?

#!/usr/bin/env python
import os
import tornado.httpserver
import tornado.ioloop
import tornado.wsgi
import sys
sys.path.append('..')

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, world")

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
import django.core.handlers.wsgi

wsgi = django.core.handlers.wsgi.WSGIHandler()
django_container = tornado.wsgi.WSGIContainer(wsgi)

application = tornado.web.Application([
    (r"/", MainHandler),
    django_container
])
# application = django_container

tornado.httpserver.HTTPServer(application).listen(8888)
tornado.ioloop.IOLoop.instance().start()

1 个回答

2

我建议你看看这个项目,它可以帮助你: https://github.com/koblas/django-on-tornado

这个项目是把tornado和django结合在一起,让你可以做到这些:

python manage.py runtornado --reload 8888

里面还包含了一个用django和tornado搭建的示例聊天服务。

撰写回答