我正在 django 中开发一个网页(在我的 Windows 7 电脑上),现在我需要在平板电脑中测试一些页面。突然想到,如果我可以从 android 平板电脑访问 Windows 中的本地主机。那可能吗?我在家里的两个设备中都使用相同的 wifi 连接。
我在stackoverflow和其他地方阅读了很多关于这个问题的问题和答案,但没有一个给我一些具体的解决方案。
我有三星 tab 2 10.1 和 android 4.0.4。
感谢任何帮助,谢谢
所以,似乎有几个问题。大多数答案要解决的问题是“如何连接到本地网络中的另一台服务器?” (或变体)。答案有两种,可以直接用电脑的IP,也可以用电脑的名字(可能需要追加.local
)。例如,我的电脑是xavier.local
.
第二个问题是您似乎要解决的问题runserver
是无法通过网络上的其他计算机访问(这是您的实际问题)。原因是默认情况下 Django 的 runserver 只会确认来自调用它们的机器的请求。这意味着默认设置将使您只能从 Windows 访问服务器(出于安全原因,他们故意这样做)。为了让它监听其他请求,您有两种选择:
runserver 192.168.1.101:8000
# Only handle requests which are made to the IP address 192.168.1.101
或者(在处理多个环境时这更容易):
runserver 0.0.0.0:8000 # handle all requests
因此,如果您的 IP 地址是 192.168.1.101:
runserver # only requests made on the machine will be handled
runserver 127.0.0.1 # only requests made on the machine will be handled
runserver 192.168.1.101 # handles all requests (unless IP changes)
runserver 192.168.1.100 # does not handle any requests (wrong IP)
runserver 0.0.0.0 # handles all requests (even if the IP changes)
我确实认为重要的是要注意0.0.0.0
在处理本地开发机器时这实际上不是一个安全问题。只有在使用可以从外部世界解决的机器上处理大型应用程序时,它才会成为一个重大问题。除非你有端口转发(我有),或者类似的东西,你不应该太担心。
虽然这个帖子很久以前就活跃了。这就是在 Windows 10 上对我有用的方法。详细发布。可能对像我这样的新手有帮助。
添加ALLOWED_HOSTS = ['*']
djangosettings.py
文件
运行 django 服务器python manage.py 0.0.0.0:YOUR_PORT
。我用作9595
我的端口。
使防火墙允许访问该端口:
导航到控制面板->系统和安全-> Windows Defender 防火墙
打开Advanced Settings,选择Inbound Rules然后右键单击它,然后选择New Rule
选择端口,点击下一步,输入您使用的端口(在我的情况下9595
),点击下一步,选择允许连接
再次点击下一个,然后给它一个名字,最后一次点击下一个。
现在找到您PC的IP地址。
ipconfig
命令。192.168.0.100
现在从连接到同一网络的另一台设备(电脑、手机、平板电脑等)转到ip_address:YOUR_PORT
(在我的情况下192.168.0.100:9595
)
希望你一切顺利!
ipconfig
您可以使用 Windows 命令提示符中的命令找出您 PC 的 IP 地址。由于您提到它们通过 WiFi 连接,因此请查找无线适配器的 IP 地址。
由于平板电脑也在同一个 WiFi 网络中,您只需在平板电脑的浏览器中键入该地址,并在其后附加 :8000,它应该会拉出页面。
127.0.0.1
是一个环回地址,大致意思是“这个设备”;您的 PC 和 android 平板电脑是独立的设备,因此每个设备都有自己的127.0.0.1
. 换句话说,如果您尝试访问127.0.0.1
您的 Android 选项卡,它会尝试连接到 Android 设备上的网络服务器,这不是您想要的。
但是,您应该能够通过 wifi 连接。在您的 Windows 框中,打开命令提示符并执行ipconfig
. 输出中的某处应该是您的 windows 框的地址,可能192.168.1.100
或类似的东西。您的平板电脑应该能够在该地址看到 Django 服务器。
需要知道你机器的IP地址..确保你的两台机器(平板电脑和电脑)都连接到同一个网络
192.168.0.22 - 说出你的机器地址
做这个 :
192.168.0.22:8000 -- 来自您的平板电脑
就是这个 !!!
如果两者都连接到同一个网络,您需要做的就是在您的 Android 应用程序中提供服务器的 IP 地址(在您的网络中)。
使用easy EasyPHP DevServer 14.1 进行测试。诀窍是您必须首先将您的本地 IP 地址添加到 Apache 服务器以收听它。
右键单击托盘图标,转到“httpd.config”中的“配置”->“Apache”
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
Listen 127.0.0.1:80
Listen 192.168.0.201:80 <<-- ADD THIS LINE
然后转到您的控制面板并停用您的 Windows 防火墙或将您的智能手机/平板电脑 IP 地址添加到例外中。
而已。我希望它有所帮助。
IP 地址 192.168.0.201 可能与您的不同。192.168.0.X
试试这个 python manage.py runserver 然后将平板电脑和系统都连接到同一个 wifi 并浏览地址,例如: python manage.py runserver 192.168.0.100:8000 在平板电脑中输入地址栏中的 URL
我自己一直在努力解决这个问题,但我无法弄清楚它是什么,因为它在我的 iPhone 上运行良好,我决定调查这个问题并找到一个快速的解决方案。我的本地机器是 Mac OSX 10.10+,一种选择是启动 Apache 服务器,但这非常不方便 - 每次您想在 Android 设备上快速检查某些内容时都更改 DocumentRoot。除此之外,在 Mac OSX 10.10 上更改 DocumentRoot 是一种痛苦。
如果你想使用:
python -m SimpleHTTPServer
在您的 Android 上,执行以下操作:
sudo python -m SimpleHTTPServer [ANY PORT YOU WANT, BUT NOT 8000]
我希望这有帮助。
欢呼-坑