用Python打造一个CRM系统(六)

本文介绍了Django 3.0开始支持的ASGI协议,它允许异步功能在Python Web开发中发挥作用。ASGI与WSGI类似,但支持异步操作。Django通过channels库验证了异步需求,并提供了asgi.py文件。文章详细阐述了ASGI的启动方式,推荐使用Daphne服务器,同时对比了uvicorn。最后,作者通过一个实战例子展示了如何利用chatterbot库创建一个对话机器人,实现了Django异步功能中的WebSocket通信。
摘要由CSDN通过智能技术生成

Django 是一个开发 Web 应用程序的流行框架,Pinterest,Instagram等应用都是基于Django实现的。但由于Python本身不是一门对异步友好的编程语言,在Django使用异步功能是个让开发者困扰的问题,故Django从3.0开始支持异步协议ASGI

一、ASGI介绍

ASGI类似于WSGI,都是一种Web 服务网关接口协议,是在CGI的标准上构建的。

ASGI(Asynchronous Server Gateway Interface)是 Django 团队提出的一种具有异步功能的 Python web 服务器网关接口协议,能够处理多种通用的协议类型,包括 HTTP,HTTP2 和 WebSocket。

在正式支持异步之前Django用channels这个库用来验证异步在Django的需求情况,该项目当前已有4.5个star。由于ASGI刚发布不久,如果要在Django中使用WebSocket功能,还是优先考虑基于channels库进行开发。

基于Django3.0的项目会多一个asgi.py文件,它就是一个ASGI应用。

one_crm/config
├── __init__.py
├── asgi.py
├── urls.py
└── wsgi.py

二、ASGI的启动方式

就像WSGI需要用uwsgi或gunicorn进行部署,ASGI需要用Daphne或Uvicorn进行部署,官方推荐使用Daphne。

Daphne是一个http、http2和websocket协议服务器,用于ASGI和ASGI-HTTP, 为Django的异步库channels提供支持。

uvicorn是一个基于asyncio开发的一个轻量高效的web服务器框架,但asyncio本身设计上有所缺陷。

安装Daphne,命令如下:

$ pip install daphne

安装完成后使用daphne config.asgi:application命令以异步方式启动Django。

三、ASGI实战

下面基于chatterbot库给之前的crm系统添加一个对话机器人,安装chatterbot:

$ pip install chatterbot

ChatterBot是一个Python库,可以轻松生成对用户输入的自动响应。ChatterBot使用一系列机器学习算法来生成不同类型的响应。这使开发人员可以轻松创建聊天机器人并自动与用户进行对话。官方教程

安装后创建一个chatbot的应用,命令如下:

python manage.py startapp chatbot

这里只是为了展示Django异步功能中websocket功能,所以不对chatte

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值