我正在 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)回复。我做错了什么?
最佳答案
我尝试按照 Leonardo Andrade 的建议运行 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/
)。
关于python - 如何访问本地网络上运行的服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35462459/