您好我是python世界的初学者,所以我仍然在尝试了解使用ASGI时的注意事项。我阅读了一些教程和文档,并在 youtube 上观看了一些视频。但是,我在某些方面不确定。
我有一个使用 Django + Django Rest Framework 的小型后端应用程序。
我的代码非常琐碎,由框架中最常见的概念组成:视图、序列化器、模型、url 等。另外,我使用了关系数据库。
我的环境是这样的:
- 蟒蛇 3.8
- 姜戈 3
- Django 休息框架 3.11
现在,我需要添加对 WebSockets 的支持,并且我做了 Django Channels 教程中描述的基本配置:
- 我安装了 Django Channels 2.4.0 (Daphene 2.5.0)
- 向 INSTALLED_APPS 添加了“频道”
- 我创建了一个带有空 ProtocolTypeRouter 的 routing.py 文件
- 我将 ASGI_APPLICATION 添加到我的 settings.py
- 我将 asgi.py 文件配置为使用通道
- 目前,我还没有配置任何通道层
- 目前,我还没有创建任何 WebSocket 端点
在这些配置之后,运行服务器正在使用 ASGI 开发服务器,显然我的 REST 端点都在工作。
一些问题:
考虑到我所有的代码都是同步的,难道没有必要对其进行任何调整吗?
考虑到它是一个 ASGI 服务器,上面的这个配置已经完成了我的同步代码在 daphene 中安全执行所需的所有魔法?
我能否以可靠和稳定的方式仅使用 ASGI 来处理正常的 HTTP 和 WebSockets 请求?或者,是否建议使用 WSGI 服务 HTTP 流量,只将 WebSockets 流量留给 daphene?
关于同步代码,究竟应该注意哪些地方?