为django开发人员提供的基于websocket的聊天应用程序。
django-chatter的Python项目详细描述
Django颤音
<…图片:https://coveralls.io/repos/github/dibs-devs/chatter/badge.svg?branch=master :目标:https://coveralls.io/github/dibs-devs/chatter?分支=主节点<…图片:https://travis-ci.org/dibs-devs/chatter.svg?branch=master :目标:https://travis-ci.org/dibs-devs/chatter rel="nofollow">https://travis ci.org/dibs-devs/chatter<…图片:https://pepy.tech/badge/django-chatter/month :目标:https://pypi.org/project/django-chatter/" rel="nofollow">https://pypi.org/project/django-chatter/django开发人员可重用的django聊天应用程序。
这里有完整的文档:django chatter docs<;https://django chatter.readthedocs.io>;
<
聊天是目前许多web应用的一个重要方面。 然而,django的包存储库没有维护良好的可重用聊天 Django开发人员可以集成到其平台中的软件包。
Django Chatter就是想改变这种状况。这是一个开源的完全可重用的聊天 具有支持群组聊天机制的应用程序。
这个应用程序的html前端是用flexbox构建的,使它能够响应 多个视口。
[还有更多工作要做]除此之外,它还可以用作rest api, 因为所有视图都生成标准的json响应,需要由 使用此软件包的应用程序前端提供WebSocket。
此应用程序使用django channels 2<;http://channels.readthedocs.io>;
\
redis<;https://redis.io/>;
作为消息代理。
要正确运行django chatter,需要python>;=3.5
和redis。注意:
对于开发,我们目前使用的是从源代码构建的redis-5.0.3。
ubuntu机器。
颤振的核心机制遵循
django channels<;https://channels.readthedocs.io/en/latest/>;
教程部分,
添加了一些修改和主题。
安装
Chatter现在打开
<…代码块::pythonpypi<;https://pypi.org/project/django chatter/>;
! 要安装它,请运行pip安装django chatter
这将安装Chatter所需的所有依赖项。
完成后,将其添加到您的:code:
<…代码块::python设置中。已安装的应用程序
:已安装的应用程序=[ … "Django_Chatter", …
因为我们使用redis作为消息代理,所以需要启用通道层 聊天室的聊天消费者 (请参见
<…代码块::pythonchannels'consumers<;https://channels.readthedocs.io/en/latest/topics/consumers.html>;
。_ 更多细节)。要启用它,您需要将以下行添加到 您的项目:code:settings.py
文件:频道层{ "默认":{ '后端':'频道'redis.core.redischannellayer', "CONFIG":{ "主机":[('127.0.0.1',6379)], }, }, }
如果还没有,请在 项目的配置文件夹。 这是因为django通道使用名为
asgi<;https://channels.readthedocs.io/en/latest/asgi.html>;
。_ 它的websocket协议。若要在应用程序上启用频道,必须添加 将所有websocket请求路由到channels应用程序的文件 (在这种情况下,是颤音)。 这应该与您的文件夹相同:code:settings.py
文件已找到。in:代码:
<…代码块::pythonrouting.py
,添加以下行:从channels.auth导入authmidlewarestack 从channels.routing导入protocoltyperouter,urlrouter 导入django_chatter.routing
应用程序=ProtocolTypeRouter({ "websocket":authmidlewarestack( URLRouter django_chatter.routing.websocket_urlpatterns将websocket请求发送到chatter的url ) ) }
这会将所有websocket请求路由到chatter,并登录:code:
用户
对象。如果你使用不同的django channels<;https://channels.readthedocs.io/en/latest/>;
。_ 除了chatter之外的应用程序,您可能已经拥有此文件,并且可以添加 Chatter要处理的适当URL。 更多详情请访问Django频道路由<;https://channels.readthedocs.io/en/latest/topics/routing.html>;
页面。如果您知道中间件是如何包装的
频道<;https://github.com/django/channels/blob/master/channels/auth.py>;
。_ 可以,然后可以随意替换:code:authMiddleWareStack 作为用户对象处理的身份验证中间件(如果您想知道 关于这个,联系吧!我们很乐意与您讨论此事。
现在您已经完成设置:code:
<…代码块::pythonrouting.py
,在 您的:code:settings.py
文件链接到routing.py 如果您已经在使用频道,则已执行此操作)
asgi_application='<;项目名称>;.routing.application'
Chatter使用上下文处理器生成用户的所有房间的列表 是的成员。若要使用此上下文处理器,请将其添加到:code:
模板
在您的:code:settings.py中列出 <…代码块::python
模板=[ { … "选项":{ "上下文处理器":[ … 'django_chatter.context_processors.get_chatterom_list', … , }, },
链接:code:
django_au chatter.url urlconf(:code:
<;project>;/url.py
)。示例:
<…代码块::python从django.url导入路径,include
< >… urlpatterns模式=[ … 路径('chat/',include('django_chatter.url'), …运行迁移:
<…代码块::bash$python manage.py生成免费聊天 $python manage.py迁移
启动应用程序的开发服务器并转到:code:
'/chat/'
url, 您将看到Chatter的主页。
尚未为此包设置测试。我以前建立过这个应用程序 我知道什么是好的测试方法。所以,欢迎考试!
使用说明
Chatter,从现在起,为用户提供了一个非常小的聊天界面 与其他用户一起使用。首先,该模型支持组聊天 层、相应的模板和前端逻辑尚未设置。
如果你在自己的应用程序中使用chatter作为包,你必须确保 在应用程序中处理用户身份验证。默认情况下,Chatter提供 需要用户身份验证的视图。如果你在另一个上面聊天 手,用法会有点不同。注释可以在
参与<;https://django chatter.readthedocs.io/en/latest/templates/develop.html>;
。_ 部分:
要添加的功能的运行列表
- 在模板上为用户添加"创建组"选项
- 添加"由用户X查看"功能