在局域网中访问Django项目

19 投票
4 回答
30149 浏览
提问于 2025-04-17 19:28

我用 Django 开发了一个网站,现在一切都运行得很好,准备在几周内上线。

在正式上线之前,我想把这个网站分享给我的一些员工,让他们检查一下功能和其他方面。其实他们的电脑和我的电脑是在同一个局域网(LAN)里连接的。

我的电脑的 IP 地址大概是 192.168.12.135,当我们运行 Django 开发服务器时,它是在 localhost:8000 上运行的。也就是说,用我的电脑的 IP 地址和端口 8000,就像 192.168.12.135:8000 这样。

所以我把项目网站的链接分享给他们,链接是 192.168.12.135:8000,但是当他们在局域网里的电脑上尝试访问时,出现了错误提示 Server not found,无法访问。

我尝试用同样的方法,因为我最近用 Python 的 web.py 框架开发了一个简单的网站,当我运行服务器时,它默认是在 localhost:8080 上运行的。我用同样的 IP 地址 192.168.12.135:8000 从其他连接在局域网的电脑上访问时,居然可以正常访问。

所以,有谁能告诉我怎么解决这个问题吗?

1. How to access the site on the systems that are connected in LAN before moving to production(in some real servers like apache, nginx etc.,).

2. Basically i am new to web developing and this is my first site developed in python, so
   i don't know more about servers and deploying a project. So can anyone please let me know   
   the detailed information about deploying django on different servers

(首先,我想找一个解决方案来解决 第一个问题(在上线前如何在局域网中访问))

4 个回答

4

在你的settings.py文件中,把ALLOWED_HOSTS改成

ALLOWED_HOSTS = ['*']

通过输入以下命令来启动你的服务器

python manage.py runserver 0.0.0.0:8000

如果想从其他设备访问这个项目,需要输入服务器的IP地址,后面加上端口号,在这个例子中端口号是8000。

38

如果你运行下面这条命令:

python manage.py runserver 0.0.0.0:8000

那么你的开发服务器就会在8000端口上对你局域网里的任何人开放,同时也可以在本地访问(这和你的IP地址无关)。

36

你需要明确告诉开发服务器使用你的IP地址,而不是localhost

可以试试这个命令:python manage.py runserver your_ip:port

不过,如果你是通过apache或者其他的网络服务器来运行的话,还是可以访问的,跟开发服务器没关系。

至于你第一个问题,我建议你使用本地的apache服务器,而不是开发服务器。这样做的话,你可以提前预见到在正式上线时可能会遇到的问题。

至于第二个问题,有很多资源可以帮助你配置Django与不同的服务器。可以去谷歌搜索一下。:)

撰写回答