如何在没有额外依赖的情况下将Websockets添加到Django应用

现在Django 3.0附带了对ASGI的支持,将Websockets添加到Django应用程序中不需要任何额外的依赖关系。 在本文中,您将学习如何通过扩展默认的ASGI应用程序来使用Django处理Websocket。 我们将介绍如何在示例ASGI应用程序中处理Websocket连接,发送和接收数据以及实现业务逻辑。

入门

首先,您需要在计算机上安装Python> = 3.6。 Django 3.0仅与Python 3.6及更高版本兼容,因为它使用了asyncawait关键字。 完成Python版本设置后,创建一个项目目录并cd进入该目录。 然后,将Django安装在virtualenv内,并在项目目录中创建一个新的Django应用程序:

$ mkdir django_websockets && cd django_websockets
$ python -m venv venv
$ source venv/bin/activate
$ pip install django
$ django-admin startproject websocket_app .

看一下Django应用程序的websocket_app目录。 您应该看到一个名为asgi.py的文件。 其内容将如下所示:

import os

from django.core.asgi import get_asgi_application

os.environ.setdefault( 'DJANGO_SETTINGS_MODULE' , 'websocket_app.settings' )

application = get_asgi_application()

该文件提供了默认的Django ASGI设置,并公开了一个名为application的ASGI application程序,可以使用uvicorndaphne类的ASGI服务器运行该application程序。 在进一步介绍之前,让我们看一下ASGI应用程序的结构。

ASGI应用程序结构

ASGI或“异步服务器网关接口”是用于使用Python构建异步Web服务的规范。 它是WSGI的精神继承者,WSGI已被Django和Flask等框架使用了很长时间。 ASGI使您可以使用Python的本机async / await功能来构建支持长期连接的Web服务,例如Websockets和Server Sent Events。

ASGI应用程序是一个async函数,它带有3个参数:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值