如何在我的电脑上托管一个 Django 网站并在另一台电脑上查看它?

How to host a django website in my pc and view it in another pc?

我的电脑里有一个 django 项目。

在终端我 运行 python3 manage.py runserver <my ipaddress>:8001

当我尝试在另一台电脑上打开 link 时,显示错误页面:

Invalid HTTP_HOST header: '<my ipaddress>:8001'. You may need to add '<my ipaddress>' to ALLOWED_HOSTS.

我该怎么办?

此外,是否可以在 url 中用一些文本代替 ipaddress? 例如,我想将其托管为 myproject/ 而不是那个复杂的 url.

不是将 <my-ip-address> 传递给 runserver 命令,而是传递 0.0.0.0.

如果两台机器都在同一个网络中,你可以运行在0.0.0.0 IP地址上申请(指本地机器上的所有IPv4地址)。有关详细信息,请参阅此 link wiki 0.0.0.0。因此,在应用程序服务器 运行 上:

manage.py runserver 0.0.0.0:8001

现在,从其他机器上,使用 http://youripaddresss:8001 访问它,其中 < youripaddress > 是您机器的实际 IP 地址。

在一种情况下这会起作用

if both computers are on the same network like local Hotspot or same LAN network

步数:

  1. 在允许主机的 django 项目设置文件中添加“*”,它看起来像

ALLOWED_HOSTS = ['*']

  1. 运行 你的服务器在这个 ip 0.0.0.0 和端口任何类似 8000 使用这个命令

manage.py runserver 0.0.0.0:8000

  1. 运行 ifconfig 如果你使用 linux ipconfig 如果 windows 那么你将得到你的服务器的 IP 地址

  2. 在另一台电脑打开浏览器,输入第3步显示的服务器ip,端口为8000

http://ip-of-server:8000

运行 你的服务器用这个命令 python manage.py runserver 0.0.0.0:8000 然后,您可以使用 URL 之类的 192.168.0.1:8000 从任何连接到您的 wifi 的系统访问您的网站 您可以在 windows 中的 CMD ipconfig 和 mac 中的 ifconfig 中使用此命令获取您的 IP Address 同时将您的 IP 添加到 setting.py

中的 ALLOWED_HOSTS

如果两台电脑不在同一网络(本地热点或局域网)

You can use ngrok to view whatever is running on your localhost from any device

使用 ngrok 从任何设备查看您的 django 项目

按照以下步骤操作:

  1. 在您的 Django 项目的设置文件中的允许主机中添加“*”:
ALLOWED_HOSTS = ['*']
  1. 从官网下载ngrok

  2. 解压下载的文件,然后通过终端进入ngrok文件所在的目录

  3. 然后输入命令:

ngrok http 8000

./ngrok http 8000
  1. 现在你可以在任何设备上打开ngrok生成的url来查看你电脑上的运行: https://randomly_generated_subdomain.ngrok.io

PS: 这也可以用于本地的任何网络服务器 运行,而不仅仅是 django 站点

ngrok 是一个很棒的工具,可用于:

  • 运行 在家中的个人云服务
  • 无需部署的演示网站
  • 在您的开发机器上构建 webhook 消费者
  • 测试连接到本地 运行 后端的移动应用程序
  • 现场部署的连接设备的稳定地址

ALLOWED_HOST = ['*'] 在你的 settings.py

python manage.py 运行服务器 0.0.0.0:8000

然后确保您的计算机防火墙允许传入和传出流量。 我使用 linux 机器,所以从控制中心转到防火墙并允许传入和传出。 然后在您的本地网络机器上。 :8000

就是这个! 为我工作