如何访问在本地网络上运行的服务器

时间:2016-02-17 16:32:53

标签: python django macos server localhost

我在Mac上运行基于Django的服务器。使用默认的" python manage.py runserver"运行它时我可以使用" http://127.0.0.1:8000/"。

通过浏览器访问它

问题是我想从网络上的其他机器访问它。当我进入网络设置时,我可以看到IP是例如10.0.0.15。在过去,我曾经能够使用" python manage.py runserver 10.0.0.15:8000"运行基于Django的服务器;然后使用该地址从本地网络中的任何其他计算机(包括运行服务器的计算机)访问它。

现在,当我尝试使用" http://10.0.0.15:8000/"即使从同一台机器上的浏览器,我可以在终端中看到服务器已收到请求,但我收到错误请求(400)响应。我做错了什么?

2 个答案:

答案 0 :(得分:1)

我试着按照莱昂纳多安德拉德的建议运行python manage.py runserver 0.0.0.0:8000。它仍然无效,但它是解决方案的第一部分。问题是DEBUG设置为False。在这种情况下,Django会考虑ALLOWED_HOSTS设置。

可能的解决方案:

  1. DEBUG设置为True。无论如何,这是调试的好主意。在这种情况下,ALLOWED_HOSTS设置不予考虑。
  2. DEBUG设置为False并添加到ALLOWED_HOSTS '0.0.0.0''*'或您的本地IP(例如'10.0.0.15')。这仅用于测试目的。确保在运行生产服务器时不允许任何主机。
  3. 当然,请在0.0.0.0:8000上运行服务器。

    当服务器运行OS X时,从其他计算机访问服务器的一个很好的解决方案是转到Mac上的设置 - >共享。在计算机名称下,您可以看到其他计算机可以用来在本地网络中访问此计算机的名称(例如my-mac.local)。您可以将该名称添加到ALLOWED_HOSTS,然后使用它访问服务器(例如http://my-mac.local:8000/)。

答案 1 :(得分:0)

尝试运行python manage.py runserver 0.0.0.0:8000