我最近开始查看django_eventstream将数据推送到网页,而不是客户端轮询更新。
我运行了django_eventstream的时间示例,没关系。然后,我将项目配置为使用事件(asgi.py,routing.py等),并获取了我应用程序的view.py之一,以将事件推送到网页。这样做至少在测试服务器模式下有效,因此一切似乎都配置正确。
现在我想做的是运行Django项目外部的脚本并从那里发送事件,例如,
import os
import django
from django_eventstream import send_event
os.environ['DJANGO_SETTINGS_MODULE'] = 'my_project.settings
django.setup()
# ...some script logic
send_event('my_channel', 'message', 'my_message_content')
这导致事件存储在项目的django_eventstream_event数据库表中,但我从未看到它被推送到网页。 Wireshark显示其他Web流量,但不显示外部生成的send_event消息。
我的问题是,在view.py中使用send_event()与可能不是Django项目不可或缺的另一个脚本有何不同?外部脚本确实要经过django_setup()配置过程。
使用Python 3.7.3,Django 2.2.5,django_eventstream 2.6.0