我正在开发django的网页(在我的电脑上使用Windows 7),现在我需要在平板电脑上测试一些页面。如果我可以从Android平板电脑访问Windows中的本地主机突然想到了。那可能吗?我在家里的两台设备都使用相同的wifi连接。
我在stackoverflow和其他地方读了很多关于这个问题的问题和答案,但没有一个给我一些具体的解决方案。
我有三星标签2 10.1与android 4.0.4。
感谢任何帮助,谢谢
答案 0 :(得分:20)
所以,似乎有几个问题。大多数答案都解决的问题是“你如何连接到本地网络中的另一台服务器?” (或变体)。有两个答案,您可以直接使用计算机的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
在处理本地开发机器时实际上不是安全问题。当使用可以从外部世界处理的机器处理大型应用程序时,它只会成为一个重大问题。除非你有端口转发(我这样做),或类似的东西,你不应该太在意。
答案 1 :(得分:11)
您可以在Windows命令提示符下使用ipconfig
命令查看PC的IP地址。由于您提到它们通过WiFi连接,因此请查找无线适配器的IP地址。
由于平板电脑也在同一个WiFi网络中,您可以在平板电脑的浏览器中输入该地址,并附上:8000,它应该拉起页面。
答案 2 :(得分:5)
127.0.0.1是一个环回地址,大概是指“此设备”;你的电脑和安卓平板电脑是独立的设备,因此它们每个都有自己的127.0.0.1。换句话说,如果您尝试在Android选项卡上转到127.0.0.1,它会尝试连接到Android设备上的网络服务器,这不是您想要的。
但是,你应该可以通过wifi连接。在Windows框中,打开命令提示符并执行“ipconfig”。输出中的某个地方应该是你的windows box的地址,可能是192.168.1.100或类似的东西。平板电脑应该能够在该地址看到te Django服务器。
答案 3 :(得分:3)
虽然很久以前这个帖子很活跃。这在Windows 10上对我有用。详细发布。可能对像我这样的新手很有帮助。
ALLOWED_HOSTS = ['*']
文件settings.py
python manage.py 0.0.0.0:YOUR_PORT
运行django服务器。我使用9595
作为我的端口。使防火墙允许访问该端口:
导航至控制面板 - > 系统和安全性 - > Windows Defender防火墙
打开高级设置,选择入站规则,然后右键单击它,然后选择新规则
9595
),点击下一步,选择允许连接 现在找到您电脑的IP地址。
ipconfig
命令。192.168.0.100
现在从连接到同一网络的其他设备(移动设备,移动设备,平板电脑等)转到ip_address:YOUR_PORT
(在我的情况下为192.168.0.100:9595
)
希望你会好起来的!
答案 4 :(得分:1)
如果两者都连接到同一网络,您只需在Android应用中提供服务器(在您的网络中)的IP地址即可。
答案 5 :(得分:1)
需要知道您机器的IP地址.. 确保您的两台计算机(平板电脑和计算机)都连接到同一网络
192.168.0.22 - 说出你的机器地址
这样做:
192.168.0.22:8000 - 来自平板电脑
就是这样!!!
答案 6 :(得分:0)
使用简单的EasyPHP DevServer 14.1进行测试。 诀窍是你必须先将你的本地IP地址添加到Apache服务器才能收听它。
右键单击托盘图标,转到"配置" - > "阿帕奇"在" httpd.config"
中# 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
答案 7 :(得分:0)
我自己也在努力解决这个问题,我无法弄清楚它是什么,因为它在我的iPhone上完美运行,我决定调查问题并找到一个快速的解决方案。 我的本地计算机是Mac OSX 10.10+,一个选项就是启动Apache服务器,但这非常不方便 - 每次想要在Android设备上快速检查某些内容时更改DocumentRoot。除此之外,更改DocumentRoot是Mac OSX 10.10上a **的一个难点。
如果您想使用:
python -m SimpleHTTPServer
在您的Android上执行此操作:
sudo python -m SimpleHTTPServer [ANY PORT YOU WANT, BUT NOT 8000]
我希望这会有所帮助。
cheerz -Pit
答案 8 :(得分:0)
尝试一下 python manage.py运行服务器 然后将平板电脑和系统都连接到同一wifi并浏览地址 例如:python manage.py runserver 192.168.0.100:8000 在平板电脑中,地址栏中的网址为