繁体   English   中英

有没有办法使用Django python从托管站点发布到本地IP地址?

[英]Is there a way to post to a local IP address from a hosted site with Django python?

我有一个控制器,该控制器的API仅可在本地网络上访问,其本地地址为10.0.1.7。 当我在本地网络( http://127.0.0.1:8000/ )上托管Django时,我能够成功发布到控制器API。 但是,当我在外部托管该网站(将其称为www.djangolan.com)时,该帖子不会执行。 我想知道是否有一种方法可以配置设置/权限,以便当我的机器连接到LAN时从www.djangolan.com网站发布信息时,它能够执行。

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)

您使用的IP是私有IP或内部IP。 它是IP相对地址,只有您的专用网络(即LAN)才知道。

当您在公共域上托管站点时,API也需要在公共IP上托管。 因此,您必须找出局域网的公共IP,并在从外部网络连接时使用该IP。

公用IP地址是分配给计算设备以允许通过Internet直接访问的地址。 Web服务器,电子邮件服务器和可从Internet直接访问的任何服务器设备都是公用IP地址的候选者。 公共IP地址是全局唯一的,并且只能分配给唯一的设备。

为计算机分配专用IP地址后 ,本地设备会通过其专用IP地址查看此计算机。 但是,位于本地网络外部的设备不能直接通过专用IP地址进行通信,而是使用路由器的公共IP地址进行通信。

参考: https : //www.iplocation.net/public-vs-private-ip-address

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM