首页 > 解决方案 > 问题在 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)


----------

标签: pythondjangowebsocket

解决方案


推荐阅读