Python Django应用程序SSL套接字连接到固件
我有一个使用Django rest框架创建的Django应用程序。以下是我的安装程序正在使用的配置: Django 1.9 作为后端的mongoDB 古尼科恩 nginx 现在我已经创建了一个API,用于在DB中输入数据并使用REST检索数据。我已经通过邮递员测试过了,效果很好。我们有一个正在使用这些API的固件,该团队希望使用SSL套接字连接而不是REST API 我是SSL套接字连接方面的新手,在互联网上找不到任何可以帮助我的东西。我知道可以在Python中创建套接字,但我不知道如何在Django应用程序中使用它在mongoDB中读/写数据 任何指导都会很有帮助 读者:我知道你可能想结束这个问题,但请就如何获得这方面的指导发表评论,因为这是提出问题的最大门户 编辑1:我正在添加serializer.py API的代码Python Django应用程序SSL套接字连接到固件,python,django,mongodb,sockets,ssl,Python,Django,Mongodb,Sockets,Ssl,我有一个使用Django rest框架创建的Django应用程序。以下是我的安装程序正在使用的配置: Django 1.9 作为后端的mongoDB 古尼科恩 nginx 现在我已经创建了一个API,用于在DB中输入数据并使用REST检索数据。我已经通过邮递员测试过了,效果很好。我们有一个正在使用这些API的固件,该团队希望使用SSL套接字连接而不是REST API 我是SSL套接字连接方面的新手,在互联网上找不到任何可以帮助我的东西。我知道可以在Python中创建套接字,但我不知道如何在Dja
from rest_framework import serializers
class SaveUserLogs(serializers.Serializer):
token = serializers.CharField(label=_("Token"))
device_ip = serializers.CharField(label=_('Device IP'))
device_name = serializers.CharField(label=_('Device Name'))
device_os = serializers.CharField(label=_('Device OS'))
device_macid = serializers.CharField(label=_('Device MAC ID'))
dest_port = serializers.CharField(label=_('Device Port'))
conn_type = serializers.CharField(label=_('Connection Type'))
date = serializers.CharField(label=_('modified date'))
def validate(self, attrs):
device_macid = attrs.get('device_macid')
token = attrs.get('token')
if device_macid:
tokendetails = validate_token(token)
if not tokendetails:
msg = _('Invalid token.')
raise serializers.ValidationError(msg)
else:
userdetails = tokendetails.user
if userdetails.check_mac_id(device_macid):
all_logs = UserLog.objects.all().order_by("-id")
log_id = 1
if all_logs:
getid = all_logs[0].id
log_id = getid + 1
new_log = UserLog(
id=log_id,
device_ip=attrs.get('device_ip'),
device_name=attrs.get('device_name'),
device_os=attrs.get('device_os'),
device_macid=attrs.get('device_macid').upper(),
dest_port=attrs.get('dest_port'),
conn_type=attrs.get('conn_type'),
)
new_log.save()
print("saving log", log_id)
else:
msg = _('Invalid MAC ID')
raise serializers.ValidationError(msg)
else:
msg = _('Must include "MAC ID".')
raise serializers.ValidationError(msg)
attrs['mac_id'] = userdetails.mac_id
return attrs
看起来您需要python提供的库。但是不推荐使用它,因为你需要处理很多低级的网络工作,你的程序会变得复杂
相反,您应该保留RESTAPI并运行您的。然后,您可以在固件上编写代码,使用https从服务器发送和接收数据
如果出于某种原因您不想使用https,那么您应该使用library来编写您的服务器。我必须连接到固件,因此必须使用SSL SocketI必须连接到固件,因此必须根据要求使用SSL Socket。这是用于将数据发送到固件[。此链接应该让您开始使用套接字编程。[这解释了如何从python脚本访问django模型。我们需要一些基于推的东西,因为HTTPS是基于拉的。