python - 问题在 Django 文件上呈现函数
问题描述
你好朋友我在views.py中有这个程序我使用django和websockets从天线获取RFID数据并发送到我的服务器。问题是在函数中
def tag_seen_callback(llrpMsg):
"""Function to run each time the reader reports seeing tags."""
global numtags
tags = llrpMsg.msgdict['RO_ACCESS_REPORT']['TagReportData']
if len(tags):
logger.info('saw tag(s): %s', pprint.pformat(tags))
for tag in tags:
numtags += tag['TagSeenCount'][0]
else:
logger.info('no tags seen')
return
我无法渲染以在我的 html 文件脚本中将数据发送到 websocket 我尝试了所有但每次都出现相同的错误
这是我的全部代码
from django.shortcuts import render
from django.http import HttpResponse
import datetime
from django.template import Template,Context
from django.template import loader
import sys
import os
sys.path.append(os.path.abspath(os.path.join(__file__, '..', '..', '..')))
from argparse import ArgumentParser
from logging import getLogger, INFO, Formatter, StreamHandler, WARN
from sllurp.llrp import LLRP_PORT, LLRPClientFactory
import smokesignal
from twisted.internet import reactor
from sllurp.util import monotonic
'''
Sllurp/Tornado Example
This file contains an example showing how to use Sllurp with Tornado
to update a web page via websockets when rfid tags are seen.
'''
numtags = 0
start_time = None
def tag_seen_callback(llrpMsg):
"""Function to run each time the reader reports seeing tags."""
global numtags
tags = llrpMsg.msgdict['RO_ACCESS_REPORT']['TagReportData']
if len(tags):
logger.info('saw tag(s): %s', pprint.pformat(tags))
for tag in tags:
numtags += tag['TagSeenCount'][0]
else:
logger.info('no tags seen')
return
def parse_args():
parser = ArgumentParser(description='Simple RFID Reader Inventory')
parser.add_argument('host', help='hostname or IP address of RFID reader',
nargs='*')
parser.add_argument('-p', '--port', default=LLRP_PORT, type=int,
help='port to connect to (default {})'.format(LLRP_PORT))
parser.add_argument('-n', '--report-every-n-tags', default=1, type=int,
dest='every_n', metavar='N', help='issue a TagReport every N tags')
parser.add_argument('-a', '--antennas', default='1',
help='comma-separated list of antennas to enable')
parser.add_argument('-X', '--tx-power', default=0, type=int,
dest='tx_power', help='Transmit power (default 0=max power)')
parser.add_argument('-M', '--modulation', default='M8',
help='modulation (default M8)')
parser.add_argument('-T', '--tari', default=0, type=int,
help='Tari value (default 0=auto)')
return parser.parse_args()
def polite_shutdown(factory):
return factory.politeShutdown()
if __name__ == '__main__':
# Set up tornado to use reactor
setup_logging()
# Set up tornado to use reactor
TwistedIOLoop().install()
# Set up web server
# Load Sllurp config
args = parse_args()
enabled_antennas = list(
map(lambda x: int(x.strip()), args.antennas.split(',')))
# Create Clients and set them to connect
fac = LLRPClientFactory(report_every_n_tags=args.every_n,
antennas=enabled_antennas,
tx_power=args.tx_power,
#modulation=args.modulation,
start_inventory=True,
tari=args.tari,
tag_content_selector={
'EnableROSpecID': False,
'EnableSpecIndex': False,
'EnableInventoryParameterSpecID': False,
'EnableAntennaID': True,
'EnableChannelIndex': False,
'EnablePeakRSSI': True,
'EnableFirstSeenTimestamp': False,
'EnableLastSeenTimestamp': True,
'EnableTagSeenCount': True,
'EnableAccessSpecID': False,
})
fac.addTagReportCallback(tag_seen_callback)
#for host in args.host:
reactor.connectTCP('192.168.1.12', 5084, fac)
reactor.addSystemEventTrigger('before', 'shutdown', polite_shutdown, fac)
# reactor.connectTCP('192.168.1.13',5084, factory)
start_time = monotonic()
# Start server & connect to readers
reactor.run()
def index(request,*args):
#print(numtags)
#data={'stock1':{'name':'Stock1','opening':45346,'closing':1234,'currentVal':56},
#'stock2':{'name':'Stock2','opening':1889,'closing':234235,'currentVal':56},
#'stock3':{'name':'Stock3','opening':1883,'closing':5346,'currentVal':56},
#'stock4':{'name':'Stock4','opening':1884,'closing':56457,'currentVal':56},
#'stock5':{'name':'Stock5','opening':1881,'closing':56457,'currentVal':56},
#}
context={'start_time':start_time}
#context={'data':data,'tableheader':['name','opening','closing','currentVal']}
return render(request,"index.html",context)
----------
解决方案
推荐阅读
- python - 计算列之间的差异并将其添加到数据框中
- python-3.x - 如何在线程内运行 discord-py 客户端
- python - Python tkinter 画布坐标和游戏坐标
- flutter - 如何在资产图像和网络图像之间进行转换
- nginx - 使用自定义标头和代理传递验证用户对资源或后端的请求
- java - 主面板 JAVA Swing 中辅助面板的 GridLayout
- rust - RUST 编译错误:期望 `::` 而得到 `{`
- swift - Ints 的 Swift 除法解释为 Doubles 的除法
- reactjs - 如何在 React.js 中关闭 Bootstrap 5 模式?
- javascript - Node.js 没有捕捉到这个模块的错误