[英]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.