Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何处理从RFID阅读器接收到的不稳定数据?_Python_Django_Rfid - Fatal编程技术网

Python 如何处理从RFID阅读器接收到的不稳定数据?

Python 如何处理从RFID阅读器接收到的不稳定数据?,python,django,rfid,Python,Django,Rfid,我的应用程序必须每2秒钟连接一次RFID阅读器并接收数据,所以它是在django框架上开发的。以下是视图中的相关行。py: HOST = '192.168.0.1' PORT = 50007 soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM) soc.settimeout(2) soc.connect((HOST, PORT)) soc.send('tag.db.scan_tags(100)\r\n') datum = soc.recv

我的应用程序必须每2秒钟连接一次RFID阅读器并接收数据,所以它是在django框架上开发的。以下是视图中的相关行。py

HOST = '192.168.0.1'
PORT = 50007
soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
soc.settimeout(2)
soc.connect((HOST, PORT))
soc.send('tag.db.scan_tags(100)\r\n')
datum = soc.recv(128)

if datum.find("ok") > -1:
    soc.send('tag.read_id()\r\n')
    data = soc.recv(8192)
如果RFID阅读器在其字段中发现任何RFID标签,应用程序将以{data}的形式将接收到的数据呈现给模板。当字段中没有标记或无法读取标记时,就会出现问题,{{data}}变量在页面上不会显示任何内容

我希望我的应用程序能够显示最后可以读取的数据。如果没有新的数据,只显示最新的数据。只有当新数据出现时,数据才会更改。这将使我的应用程序更加稳定


有什么建议吗?非常感谢。

最简单的方法之一是使用Django,并将数据存储在本地内存、memcached或数据库等中。您可以缓存接收到的任何数据,如果未接收到数据或数据错误或其他原因,则使用缓存的数据:

from django.core.cache import cache

# set cached data
cache.set('data', data)
# get cached data
cache.get('data')

您还可以通过其他方式存储数据,例如在模型上。您可能应该将RFID读取部分移出视图,并使用(或其他)将其作为任务运行,保存结果,然后只使用视图中最新保存的数据

非常感谢。这对我真的很有帮助。