【问题标题】:How to turn a tornado HTTPRequest into a Django HttpRequest or WSGIRequest?如何将龙卷风 HTTPRequest 转换为 Django HttpRequest 或 WSGIRequest?
【发布时间】:2012-03-08 07:56:46
【问题描述】:

我正在使用 Django 和 TornadIO2/Tornado 编写一个 socket.io 应用程序。在 TonradIO2 会话中,我可以访问 Tornado 的 HTTPRequest 对象。但是,我无法访问 SocketConnection 类的事件处理程序中的 django 请求对象。理想情况下,我希望所有已配置的 django 中间位置在到达我的事件处理程序之前在请求对象上执行。我可以明确地将它们称为中间位置,但我需要先将 HTTPRequest 对象转换为 Django HttpRequest 或 Django WSGIRequest 对象。关于如何实现这一点的任何建议?

【问题讨论】:

    标签: python django socket.io tornado django-wsgi


    【解决方案1】:

    Tornado 有WSGIContainer,它“使 WSGI 兼容的函数可以在 Tornado 的 HTTP 服务器上运行”和“--旨在让其他框架(Django、web.py 等)在 Tornado HTTP 服务器上运行,并且我/ O 循环。”

    【讨论】:

    • 使用 WSGIContainer 会绕过 TornadIO 的 socket.io 协议处理。我想做的是使用 TornadIO 作为 socket.io 通信协议处理程序,然后在事件传递给我的事件侦听器之前调用 Django 的魔法。
    • 我最终使用了WSGIContainer,并找到了一种让它仍然使用 TornadIO2 处理 socket.io 的方法。请参阅github.com/tgcondor/django-tornadio2/blob/master/… 的示例代码。感谢您的回答。
    猜你喜欢
    • 2012-03-12
    • 2014-04-24
    • 2013-04-22
    • 1970-01-01
    • 2013-02-22
    • 2010-11-29
    • 1970-01-01
    • 2020-08-05
    相关资源
    最近更新 更多