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

标签 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)回复。我做错了什么?

最佳答案

我尝试按照 Leonardo Andrade 的建议运行 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')。这仅用于测试目的。确保在运行生产服务器时不允许任何主机。

当然,在 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/

相关文章:

django - 我把 "WSGIPassAuthorization On"放在哪里?

swift - 从命令行读取输入时允许行编辑

来自文件的 Python 正则表达式表创建器

Django JWT 和 OAuth 认证和授权

python - 当状态更改为媒体结束时 QMediaPlayer 状态未停止

jquery - 将jquery变量存储在django后端

php - Mac完全卸载未从brew安装的php

macos - Wine64 是如何应对 macOS 的?

python - 使用 pip 在 Windows 中安装 ZeroMQ/pyzmq 时遇到问题

python - 如何作为命令的结果从另一个程序执行代码