带有 Django 的本地网络的域名

Domain name with local network with Django

我想在本地网络(无线)中测试我的 Django 应用程序。我的应用程序由通过以太网连接到路由器的笔记本电脑提供服务。我已经通过添加如下内容来编辑 (windows 10) hosts 文件:
127.0.0.1 mytest.com 192.168.1.8 mytest.com 0.0.0.0 mytest.com
我用 runserver 192.168.1.8:8000 使用上面的三个 ip 之一启动 django 服务器,显然我在设置文件中添加了 ALLOWED_HOSTS = ['127.0.0.1', '192.168.1.8', 'mytest.com', '0.0.0.0']
结果是,我可以使用笔记本在允许的主机之一的浏览器中编写,并且可以看到该应用程序。如果我确实尝试使用智能手机,我只能在键入 192.168.1.8:8000 时才能查看该应用程序。我的目标是在移动浏览器上输入 mytest.com:8000 并查看应用程序。我使用的是 DHCP 配置,但当然我可以根据需要手动设置静态 IP。

您需要以某种方式告诉 智能手机 mytest.com 应该解析为 192.168.1.8。

对之前尝试的评论:

  • hosts 文件记录只影响添加它的计算机。难怪智能手机无法正确解析网站。
  • 127.0.0.1 是环回接口。如果智能手机将 mytest.com 解析为 127.0.0.1,它将自行查找此站点。
  • 0.0.0.0 表示 "all network interfaces"。这将是无效的 DNS 记录。

实现目标的方法:

  • 在 DHCP 设置中将您的桌面 IP 设置为网关。可能比自定义 DNS
  • 更容易
  • 第二个最简单的选项,如果您的路由器支持自定义 DNS 记录。我无法就此给您具体建议,但至少一些较旧的 TPLinks 支持这一点。只需探索界面,在高级设置中寻找与 DNS 相关的内容。
  • 如果路由器不支持自定义DNS记录,可以在路由器上安装OpenWRT/DD-WRT;他们绝对支持这一点。此选项需要对这些固件有一定的了解。
  • 在您的计算机上安装 DNS 服务器。然后,直接在您的智能手机上设置此 DNS,或将路由器配置为在 DHCP 公告中使用此本地 DNS。

不要忘记,在所有这些情况下,开发服务器都应该监听适当的接口(设置取决于您使用的开发服务器 运行;参见 windows 这个问题:Django 0.0.0.0:80; can't access remotely)