繁体   English   中英

使 Django 服务器在 LAN 中可访问

[英]Making django server accessible in LAN

我已经安装了 Django 服务器,可以按如下方式访问它

http://localhost:8000/get-sms/
http://127.0.0.1:8000/get-sms/

假设我的 IP 是xxxx

当我这样做时,从同一网络下的另一台PC

my-ip:8000/get-sms/

但它不起作用。

我可以很容易地用那台电脑ping我的IP。

此外,在我的 81 端口上,我有 apache,它很容易访问,如下所示

http:///my-ip:81

可能是什么问题? 我在 Django 中需要一些额外的东西吗?

运行 Django 开发服务器
这就是你要找的。 为了进一步帮助您,您应该执行以下操作:

python manage.py runserver 0.0.0.0:8000

顺便说一句,这可能是这个问题的重复。

以下是文档中的内容:

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

要添加@Depado 的答案,您可能需要将您的 LAN IP 地址与localhost一起添加到settings.py ALLOWED_HOSTS 它看起来像,

ALLOWED_HOSTS = ["localhost", "192.168.8.160"]

您可以使用https://ngrok.com/这会将您的本地 Web 服务器暴露给 Internet/public。

我到处看,我一直看到使用终端命令的答案:

python manage.py runserver 0.0.0.0:8000

这是可行的,但如果您想在 LAN 上运行远程调试器(在我的例子中是 VSCode),它会自动启动服务器而没有机会修改主机 IP 地址。 但是,我找到了一个永久的解决方案:

打开: ./env/lib/python3.8/site-packages/django/core/management/commands/runserver.py

搜索: self.addr = ''

''替换为'0'并保存。 '0''0.0.0.0'简写)

现在如果你运行: python manage.py runserver它对本地网络开放,输出: Starting development server at http://0:8000/

重要的是,调试器现在在http://0:8000/启动服务器

如果您还没有,请记住将您的客户端添加到 settings.py 中的允许主机: ALLOWED_HOSTS = ["*"]

块引用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM