我在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)响应。我做错了什么?
答案 0 :(得分:1)
我试着按照莱昂纳多安德拉德的建议运行python manage.py runserver 0.0.0.0:8000
。它仍然无效,但它是解决方案的第一部分。问题是DEBUG
设置为False
。在这种情况下,Django会考虑ALLOWED_HOSTS
设置。
可能的解决方案:
DEBUG
设置为True
。无论如何,这是调试的好主意。在这种情况下,ALLOWED_HOSTS
设置不予考虑。DEBUG
设置为False
并添加到ALLOWED_HOSTS
'0.0.0.0'
或'*'
或您的本地IP(例如'10.0.0.15'
)。这仅用于测试目的。确保在运行生产服务器时不允许任何主机。当然,请在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