Dav*_* D. 14 python django django-channels
有人可以澄清Django Channels Project和新的Django 本机异步支持之间的差异或互补性吗?
据我了解,Django-Channels 是一个在 Django 之外启动的项目,然后开始集成到核心 Django 中。但这项工作的当前状态对我来说仍然令人困惑。
例如,今天我使用的是 Django 2.2,我想为我的项目添加 WebSocket 支持。我是不是该:
Tim*_*Tim 22
今天我使用的是 Django 2.2,我想为我的项目添加 WebSocket 支持。
如果你想为你的应用添加 websocket 支持,目前你不需要升级到 django 3.0。Django 2.2 plus 频道可以做到这一点 - 目前是最好的前进方式。(尽管如果您没有充分的理由不升级到 django 3.0 绝对没有坏处)。我将尝试在此答案中进一步解释原因。
据我了解,Django-Channels 是一个在 Django 之外启动的项目,然后开始集成到核心 Django 中。但这项工作的当前状态对我来说仍然令人困惑。
是的,我的理解是,渠道最初是作为 Django 核心开发人员之一(Andrew Godwin,他也在 Django 3.0 中带来异步更改方面发挥了重要作用)的一个项目开始的。如果您只是安装 Django,它不会自动包含在内,但它正式成为 django 项目的一部分,并且自 2016 年 9 月以来一直存在(请参阅此处)。它现在是 2.4 版,因此是一个成熟且稳定的项目,可用于将 websockets 添加到您的 django 应用程序。
虽然频道添加了一种向 django 应用程序添加一些异步功能的方法,但 Django 的核心仍然是同步的。正在逐步引入的“异步”项目解决了这个问题。这里要注意的关键是它是逐步引入的。Django 由几层组成:
现在要充分受益于异步,我们真的需要所有这些层都是异步的,否则不会真正有任何性能优势。这是一个相当大的项目,因此它正在逐步推出:
一旦我们到达最后一点,可能值得考虑将 Django 的异步功能用于诸如 web-sockets 之类的东西,但目前我们甚至无法利用我们现在可以处理 ASGI 和 WSGI 的事实服务器。您可以将 Django 与 ASGI 服务器一起使用,但没有意义,因为基本处理程序仍然是同步的。
在去年的 djangoCon 上有一个很好的演讲,概述了异步 django 的计划。你可以在这里查看。
| 归档时间: |
|
| 查看次数: |
3492 次 |
| 最近记录: |