Django Channels,无需痛苦
项目描述
django-channels-handlers
Django Channels消费者,无需痛苦 💊
django-channels-handers是Django Channels的一个抽象层,使得实现优雅的协议变得简单,无需担心通信层。
需求
- Django>=2.1
- channels~=2.4
- pydantic~=1.4
用法
从pypi安装django-channels-handlers
pip install django-channels-handlers
为每个您打算处理的消息创建pydantic模型。这允许处理程序验证消息并将其解析为对象。
from pydantic import BaseModel, UUID4
from typing import Dict, Optional
from datetime import datetime
class ChatMessage(BaseModel):
type: str = "chat.message"
id: UUID4
thread: UUID4
sender: UUID4
content: str
data: Optional[Dict] = {}
created: datetime
创建一个消息处理程序。
这将首先使用模型中的相应条目验证和解析与handled_types匹配的消息。然后执行handled_types中指定的方法,传递新解析的消息对象。
from channels_handlers.handlers import MessageHandler
# For async, import AsyncMessageHandler
class ChatHandler(MessageHandler):
namespace = "chat"
models = {
"chat.message": ChatMessage,
}
def message(self, message):
# Some logic with message, e.g. save to database
pass
导入ConsumerHandlerMixin并将其添加到您的Django Channels消费者中。然后,将您的自定义处理程序添加到消费者中的handler_classes。
from channels_handlers.consumers import ConsumerHandlerMixin
# For async, import AsyncConsumerHandlerMixin
from channels.generic.websocket import JsonWebsocketConsumer
class MyConsumer(ConsumerHandlerMixin, JsonWebsocketConsumer):
handler_classes = [ChatHandler]
兼容性
django-channels-handlers与Python 3.7+、Django 2.2+和Django Channels 2.2+兼容。
许可
django-channels-handlers采用MIT许可。
作者
贡献
django-channels-handlers依赖于像您这样有才华的编码者的贡献。有关更多信息,请参阅CONTRIBUTING.md。
项目详情
关闭
django-channels-handlers-0.2.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 898edde81d5e3cbdca0e5af0fe7a52bb037dba3e769ad2c5ab422e5545901dfb |
|
MD5 | 6d26d0d1dd8e295d984c281ca47d45a6 |
|
BLAKE2b-256 | 1abcb8d400abe8e360ecbc8a3c557f4fc03f14712d0c3e01792039c88296a726 |
关闭
django_channels_handlers-0.2.2-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 379b3ebcc26f613b722ef476b785da846cb7ff08a397d909cf75949138f15143 |
|
MD5 | a547ff284978a8d8b990c8187ae3d8e5 |
|
BLAKE2b-256 | 1977a4aba9f93ac932a619ebb0cc8d944dcf9bb1d10040380be65705409f6bfb |