所以我有一个Raspberry Pi,它以CSV文件收集数据,该文件存储在Pi本地。 Raspberry Pi已连接到大学网络,因此要远程访问Pi,我只需要连接到大学网络,并在我的PyCharm IDE中设置一个远程项目解释器即可。
我编写了一个脚本,该脚本访问本地Raspberry Pi上的特定CSV文件,然后将每行数据发布到本地Django服务器。但是我运行它时总是出错。我已经在自己的计算机上使用本地CSV文件测试了本地Django服务器和脚本,并且可以正常工作。
我一直遇到的错误是:
requests.exceptions.ConnectionError:HTTPConnectionPool(host ='127.0.0.1',port = 8000):url超过了最大重试次数:/ datavaluetable /(由NewConnectionError('
我解决该问题的最初想法是:
我每次仍然会遇到相同的错误,现在我完全被卡住了。我的系统是Windows 10,而Pi的系统是基于Linux的吗?我将不胜感激,谢谢!
我的CSV发布脚本:
import csv
import requests
csvFilePath = '/home/pi/temp/tmp.csv' # local directory of CSV on Pi
with open(csvFilePath) as f: # opens csv file as variable f
reader = csv.DictReader(f)
for row in reader: # Iterates through each row
x = requests.post('http://127.0.0.1:8000/datavaluetable/', headers={'Content-Type': 'application/json'}, json=row)
Django后期处理代码(Views.py):
RESERVED_FIELDS = ['Node ID', 'System Time']
class DataValueTableList(APIView):
parser_classes = [JSONParser]
authentication_classes = []
permission_classes = []
def post(self, request, format=None):
datas = request.data
nodeID = datas.get("Node ID")
timestamp = datas.get("System Time")
for key, value in datas.items(): # iterates through each key
if key in RESERVED_FIELDS:
continue
else:
DataValueTable.objects.create(sensorName=nodeID, timestamp=timestamp, valueName=key)
return Response(status=status.HTTP_201_CREATED)