在局域网中访问Django项目
我用 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 个回答
在你的settings.py文件中,把ALLOWED_HOSTS改成
ALLOWED_HOSTS = ['*']
通过输入以下命令来启动你的服务器
python manage.py runserver 0.0.0.0:8000
如果想从其他设备访问这个项目,需要输入服务器的IP地址,后面加上端口号,在这个例子中端口号是8000。
如果你运行下面这条命令:
python manage.py runserver 0.0.0.0:8000
那么你的开发服务器就会在8000端口上对你局域网里的任何人开放,同时也可以在本地访问(这和你的IP地址无关)。
你需要明确告诉开发服务器使用你的IP地址,而不是localhost
。
可以试试这个命令:python manage.py runserver your_ip:port
。
不过,如果你是通过apache或者其他的网络服务器来运行的话,还是可以访问的,跟开发服务器没关系。
至于你第一个问题,我建议你使用本地的apache服务器,而不是开发服务器。这样做的话,你可以提前预见到在正式上线时可能会遇到的问题。
至于第二个问题,有很多资源可以帮助你配置Django与不同的服务器。可以去谷歌搜索一下。:)