Django如何在另一台连接到不同网络的计算机上运行本地主机?

6

我正在本地主机上运行我的Django项目,而且它运行得很好。为了测试目的,我想从另一台连接到同一网络的计算机上运行我的本地主机。

我已经执行了python manage.py runserver '我的IP地址'

这也运行得很好。是否有任何方法可以让我从连接到另一个网络的另一台计算机访问我的本地主机?

比如我连接到A网络并在运行我的本地主机,我的朋友连接到B网络。假设他想访问我的本地主机并查看我的项目运行情况,那么从另一台连接到另一个网络的计算机上访问另一台计算机的本地主机是否可能?

3个回答

11

你可以。只需在django runserver中运行

python manage.py runserver 0.0.0.0:8000
现在,您可以使用youripaddress:8000访问您的应用程序。

来自Django...

请注意,默认IP地址127.0.0.1无法从网络上的其他计算机访问。要使开发服务器对网络中的其他计算机可见,请使用其自己的IP地址(例如192.168.2.1)或0.0.0.0或::(启用IPv6)。

您可以提供用括号括起来的IPv6地址(例如[200a::1]:8000)。这将自动启用IPv6支持。

更新:

为了与问题标题匹配的答案,您需要配置路由器将端口80转发到您的应用程序地址。


那么我可以在连接到另一个网络的另一台计算机上查看我的项目吗? - varad
@VishnuRaj 它只会在你的局域网内可用。 - Raja Simon
@VishnuRaj 你是否有路由器来转发端口(将8000端口转发到你的服务器)?只有这样,你才能从世界其他地方访问你的本地应用程序。! - Raja Simon
是的,我有路由器来转发端口,但如何将请求重定向到我的计算机的本地IP地址呢?你能给个提示吗? - varad
你在使用哪种路由器和哪个品牌的路由器,因为每个路由器都有不同的方法... - Raja Simon
显示剩余4条评论

2

使用本地主机或系统IP运行服务器,例如以下之一:

  • localhost
  • 127.0.0.1
  • 您的系统IP地址

"Original Answer"翻译成中文是"最初的回答"

python manage.py runserver 192.168.6.7:8000

python manage.py runserver 0.0.0.0:8000

python manage.py runserver 127.0.0.1:8000

settings.py 中添加主机以便在网络中的其他系统中访问。将其称为“原始答案”不太合适,建议使用“初始回复”。
 ALLOWED_HOSTS = ['127.0.0.1', 'localhost','192.168.6.7']

0

如果您在Django项目中使用DEBUG=True模式,除此之外您不需要任何其他东西(我假设您没有使用端口80,因为它需要root访问权限)。

您必须使用0.0.0.0作为主机IP,这是一个简单的解决方案。命令是:

python manage.py runserver 0.0.0.0:8000。就这样。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接