我有一个控制器,其API只能在我的本地网络上访问,本地地址为10.0.1.7。当我在本地网络(http://127.0.0.1:8000/)上托管Django时,我能够成功发布到控制器API。但是,当我在外部托管网站时(让我们称之为www.djangolan.com),帖子不会执行。我想知道是否有办法配置设置/权限,以便当从网站www.djangolan.com发布帖子时,我的机器连接到LAN,它能够执行。
def user_created(request):
contents = {}
if request.method == 'POST':
form = PostForm(request.POST)
if form.is_valid():
firstName = form.cleaned_data['firstName']
lastName = form.cleaned_data['lastName']
url = "http://adminname:password@10.0.1.7/api/"
fullName = lastName + " , " + firstName
createUserJSON = {"SetUser":
{"User": [{
"Name": fullName,
"Description": "",
"Attribute": [
{
"type": "",
"Name": "FirstName",
"Value": firstName
},
{
"type": "",
"Name": "LastName",
"Value": lastName
}
]
}]
}
}
r = requests.post(url,json=createUserJSON)
return render(request,'user_created.html',contents)
答案 0 :(得分:0)
您使用的IP是私有或内部IP。它是您的专用网络(即您的LAN)所知的IP相对。
当您在公共域上托管网站时,API也需要托管在公共IP上。因此,您必须弄清楚LAN的公共IP,并在从外部网络连接时使用该IP。
公共IP地址是分配给计算的地址 设备允许通过Internet直接访问。一个Web服务器,电子邮件 服务器和可从Internet直接访问的任何服务器设备 公共IP地址的候选人。公共IP地址是全球的 唯一的,只能分配给一个独特的设备。
如果为计算机分配了私有IP地址,则为本地 设备通过它的私有IP地址查看此计算机。然而 驻留在本地网络之外的设备不能直接使用 通过私有IP地址进行通信,但使用路由器的公共信息 要通信的IP地址。