在本地WiFi网络上服务Django项目



我用

python manage runserver 0.0.0.0:8000

来启动服务器,这样我就可以从我的wifi网络上的其他计算机访问项目,但是当我在另一台计算机上浏览到internet-ipaddress:8000时,项目没有加载。我是不是错过了一个场景?

假设所有的机器都能看到彼此…

获取正在运行runserver的机器的IP地址。例如,在控制台中运行ifconfig

ifconfig
eth0      Link encap:Ethernet  HWaddr 10:1e:72:b8:2a:4b  
              inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0
              ...

检查您是否正在运行防火墙。例如

sudo ufw status

如果激活,则需要打开端口8000,因此,再次在控制台中运行

sudo ufw allow 8000/tcp

然后启动runserver(或runserver_plus如果使用django-extensions)

python manage.py runserver_plus 192.168.1.2:8000

在另一台机器上打开浏览器

http://192.168.1.2:8000/admin

你说的internet-ipaddress是什么意思?听起来你是在使用路由器的外部IP。您应该使用提供服务的特定机器的IP,这将是一个内部地址,如192.168.0.2

您应该将其绑定到您的本地IP地址。例如

python manage.py runserver 192.168.1.100:8000

您应该检查像Pagekite或Show Off这样的解决方案,因为它们通常非常容易设置,提供了很大的灵活性(和移动性),并为您的本地主机服务器提供了一个稳定的域名。

注意:192.168.2.5是我的ip。所以,给你自己的

打开settings.py并将其添加到ALLOWED_HOSTS

ALLOWED_HOSTS = ['192.168.2.5']

然后运行命令

python manage.py runserver 192.168.2.5:8000

在防火墙中出现允许访问的警告。

现在从同一网络上的系统访问您的主机

将192.168.0.8(或任何你的路由器ip)作为字符串添加到设置中的ALLOWED_HOSTS列表中,然后使用python manage.py runserver 192.168.0.8:8000

最新更新