使Django REST Framework变得反应式
项目描述
此包使 Django REST Framework 视图变为响应式,即客户端应用程序可以在数据发生变化时立即通知底层数据的变化,而无需再次轮询 API。虽然初始请求是以常规 HTTP 请求完成的,但所有更新通知都通过 WebSocket 进行。
安装
先决条件
Django REST Framework 的响应式扩展需要使用 Django Channels 通过 WebSocket 进行推送通知。
从 PyPI
pip install djangorestframework-reactive
从源码
pip install https://github.com/genialis/django-rest-framework-reactive/archive/<git-tree-ish>.tar.gz
其中 <git-tree-ish> 可以代表 DRF Reactive 的 GitHub 仓库 中的任何提交 SHA、分支名称、标签名称等。例如,要从 master 分支安装最新版本,请使用
pip install https://github.com/genialis/django-rest-framework-reactive/archive/master.tar.gz
配置
首先,将 rest_framework_reactive 添加到 INSTALLED_APPS。
配置你的 Django Channels routing.py 以包括所需的路径
from django.urls import path
from channels.routing import ChannelNameRouter, ProtocolTypeRouter, URLRouter
from rest_framework_reactive.consumers import ClientConsumer, MainConsumer, WorkerConsumer
from rest_framework_reactive.protocol import CHANNEL_MAIN, CHANNEL_WORKER
application = ProtocolTypeRouter({
# Client-facing consumers.
'websocket': URLRouter([
# To change the prefix, you can import ClientConsumer in your custom
# Channels routing definitions instead of using these defaults.
path('ws/<slug:subscriber_id>', ClientConsumer),
]),
# Background worker consumers.
'channel': ChannelNameRouter({
CHANNEL_MAIN: MainConsumer,
CHANNEL_WORKER: WorkerConsumer,
})
})
此外,urls.py 需要更新以包括一些额外的路径
urlpatterns = [
# ...
url(r'^api/queryobserver/', include('rest_framework_reactive.api_urls')),
# ...
]
运行
除了运行一个 Django 应用程序服务器实例之外,您还需要运行一个单独的观察者工作进程(或多个工作进程)。您可以运行以下命令来启动它
python manage.py runworker rest_framework_reactive.main rest_framework_reactive.worker
项目详情
关闭
散列值 for djangorestframework_reactive-7.0.2-py3-none-any.whl
算法 | 散列摘要 | |
---|---|---|
SHA256 | 3de8f2f1bfb3ba4f90d2caca55e7e211c76f48504a40df17aeba541537444ef1 |
|
MD5 | ea8f4e677249aebf66f606c0b230b52b |
|
BLAKE2b-256 | 75f4f742f060f60fad138169979b249df2efaf69c1e7cc84db3ba88583bf4a5f |