从其他计算机访问Django应用
我正在我的本地电脑上用Django开发一个网页应用。
现在我想让我的网页应用可以被网络上其他电脑访问。我们有一个共享的网络驱动器“F:/”。我应该把我的文件放在这个驱动器上,还是可以直接在命令提示符里输入“python manage.py runserver test_my_app:8000”,让网络上的其他电脑通过在浏览器地址栏输入“test_my_app:8000”来访问这个网页服务器?我需要打开什么端口吗?该怎么做呢?
7 个回答
这可以通过四个简单的步骤完成:
- 确保在settings.py文件中,设置ALLOWED_HOSTS = ['*']。
- 使用命令运行服务器:python manage.py runserver 0.0.0.0:3000。
- 打开Windows安全中心,找到防火墙和网络保护,然后完全关闭Windows防火墙。
到这里为止,你的Django API可以在本地网络中通过这个网址访问:http://你的局域网IP地址:3000/
- 现在我们需要打开3000端口。访问http://192.168.1.1,登录到你的路由器。接着找到高级选项卡,选择NAT,然后点击虚拟服务器,填写以下信息:
- WAN端口 - 3000
- LAN端口 - 3000
- LAN IP地址 - 查看你的电脑的IP地址
到这里为止,你的Django API可以通过这个网址从任何地方访问:http://你的公网IP地址:3000/
这非常非常简单
python manage.py runserver 0.0.0.0:8000
在setting.py文件中进行更改
ALLOWED_HOSTS = ['*']
打开Linux终端
sudo ifconfig
获取inet ipv4地址
在同一个本地网络的其他电脑上运行
用IP地址运行这个应用程序,然后在其他机器上访问它。
你可以使用这个命令:python manage.py runserver 192.168.56.22:1234
确保这两台机器在同一个网络里,这样才能正常工作。
只需要把你自己的IP地址加到ALLOWED_HOSTS里就可以了。
ALLOWED_HOSTS = ['192.168.1.50', '127.0.0.1', 'localhost']
然后运行你的服务器,输入 python manage.py runserver 192.168.1.50:8000
这样你就可以在网络中的其他电脑上访问你自己的服务器了。
这应该通过一个中央系统或服务器来完成。
默认情况下,使用 manage.py runserver
启动的服务器不会允许绑定 IP 地址。
需要注意的是,默认的 IP 地址 127.0.0.1 只能在本机上访问,其他机器无法访问。如果想让你的开发服务器可以被网络上的其他机器看到,你需要使用它自己的 IP 地址(比如 192.168.2.1)或者使用 0.0.0.0 或者 ::(如果启用了 IPv6)。
如果你想在本地机器上检查,可以这样做:
python manage.py runserver 0.0.0.0:8000
然后去你网络上的其他电脑,访问你的 IP 地址,比如 192.168.1.24:8000
。
更新:
对于大约 1.10 版本的 Django,你需要把你的主机添加到 ALLOWED_HOSTS 中,具体可以查看 这里。