2017-07-19 34 views
0

我有一個控制器,其API只能在本地網絡上訪問,本地地址爲10.0.1.7。當我在本地網絡(http://127.0.0.1:8000/)上託管Django時,我能夠成功發佈到控制器API。但是,當我從外部託管網站(我們稱之爲www.djangolan.com)時,該帖子不會執行。我想知道是否有配置設置/權限的方法,以便當從站點www.djangolan.com發佈帖子,同時將我的設備連接到LAN時,它可以執行。有沒有辦法使用Django python從託管網站發佈到本地IP地址?

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:[email protected]/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

您使用的IP是私有IP或內部IP。它是一個只有你的私人網絡,即你的局域網才知道的IP相關者。

當您在公有領域上託管該網站時,該API還需要託管在公共IP上。因此,您必須找出局域網的公共IP,並在從外部網絡連接時使用該IP。

一個公共IP地址是分配給計算設備 允許通過Internet直接訪問的地址。一個網絡服務器,電子郵件 服務器和任何可以從互聯網上直接訪問的服務器設備都是 候選公共IP地址。一個公共IP地址是全局的 唯一的,並且只能分配給一個唯一的設備。

當一臺計算機被分配了一個私有IP地址時,本地設備通過它的私有IP地址看到這臺計算機。但是,居住在本地網絡之外的設備不能直接通過 通過私有IP地址進行通信,而是使用您的路由器的公共IP地址 進行通信。

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

相關問題