如何在我的本地网络上制作 Django 网站 public?

How do I make Django Website public on my local network?

我正在用 Django 和 React 为自己和家人建立一个网站。每次我要求他们检查我的流程并征求他们的意见时,他们都会收到“未找到网页”错误或无法访问该网站。我该怎么做才能让本地网络上的任何人都可以在 运行 时查看我的页面。这是flask中默认的,我不明白为什么django会这样运行? (也许安全?)我找不到任何关于如何在主应用程序设置中的 ALLOWED_HOSTS 部分添加允许所有的好信息。

我也知道你可以添加IP地址,但我是菜鸟,我不了解如何在不做大量工作的情况下获取我所有家庭设备的IP地址?有人对此有好的解决方案吗??

如果所有人都在同一网络上,则 运行

python manage.py runserver 0.0.0.0:8000
ALLOWED_HOSTS = ['*']

但这不是你真正的问题。在网络上的其他计算机能够访问您的计算机之前,您很可能需要在本地计算机或路由器(或两者)的防火墙中打开端口。

Django 文档:

When DEBUG is True and ALLOWED_HOSTS is empty, the host is validated against ['.localhost', '127.0.0.1', '[::1]'].

如果您处于调试模式且列表为空,或者处于非调试模式且列表为空,则局域网中的任何人都无法访问您的网站。

在这种情况下,因为您在局域网中,您可以使用:

ALLOWED_HOSTS = ['*']

然后运行

python manage.py runserver 0.0.0.0:8000

如果您在 LAN 中,则无需在路由器上打开任何端口,但可能需要在本地计算机上配置防火墙。

否则,建议使用 nginx 或 apache 等网络服务器。

很简单

  1. 如果是 windows,只需转到命令行并键入 ipconfig,如果是 linux
  2. ,则键入 ifconfig
  3. 记下您在本地网络上的 IP 地址
  4. 在 settings.py
  5. 允许的主机中写入该地址
  6. 运行命令pythonmanage.py运行服务器:
  7. 将任何设备连接到您的本地网络并在其浏览器中 window 输入服务器 ip:port 数量 例如 192.168.25.1:8080