29

我正在 django 中开发一个网页(在我的 Windows 7 电脑上),现在我需要在平板电脑中测试一些页面。突然想到,如果我可以从 android 平板电脑访问 Windows 中的本地主机。那可能吗?我在家里的两个设备中都使用相同的 wifi 连接。

我在stackoverflow和其他地方阅读了很多关于这个问题的问题和答案,但没有一个给我一些具体的解决方案。

我有三星 tab 2 10.1 和 android 4.0.4。

感谢任何帮助,谢谢

4

9 回答 9

32

所以,似乎有几个问题。大多数答案要解决的问题是“如何连接到本地网络中的另一台服务器?” (或变体)。答案有两种,可以直接用电脑的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在处理本地开发机器时这实际上不是一个安全问题。只有在使用可以从外部世界解决的机器上处理大型应用程序时,它才会成为一个重大问题。除非你有端口转发(我有),或者类似的东西,你不应该太担心。

于 2013-06-14T20:50:50.840 回答
21

虽然这个帖子很久以前就活跃了。这就是在 Windows 10 上对我有用的方法。详细发布。可能对像我这样的新手有帮助。

  1. 添加ALLOWED_HOSTS = ['*']djangosettings.py文件

  2. 运行 django 服务器python manage.py 0.0.0.0:YOUR_PORT。我用作9595我的端口。

  3. 使防火墙允许访问该端口:

    • 导航到控制面板->系统和安全-> Windows Defender 防火墙

    • 打开Advanced Settings,选择Inbound Rules然后右键单击它,然后选择New Rule

    • 选择端口,点击下一步,输入您使用的端口(在我的情况下9595),点击下一步,选择允许连接

    • 再次点击下一个,然后给它一个名字,最后一次点击下一个。

  4. 现在找到您PC的IP地址。

    • 以管理员身份打开命令提示符并运行ipconfig命令。
    • 您可能会找到多个 IP 地址。当我通过 wifi 连接时,我选择了Wireless LAN adapter WiFi下的那个。就我而言,它是192.168.0.100
    • 请注意,当您重新连接到网络时,此 ip 可能会更改。所以你需要再次检查它。
  5. 现在从连接到同一网络的另一台设备(电脑、手机、平板电脑等)转到ip_address:YOUR_PORT(在我的情况下192.168.0.100:9595

    希望你一切顺利!

于 2018-02-03T06:34:47.997 回答
16

ipconfig您可以使用 Windows 命令提示符中的命令找出您 PC 的 IP 地址。由于您提到它们通过 WiFi 连接,因此请查找无线适配器的 IP 地址。

由于平板电脑也在同一个 WiFi 网络中,您只需在平板电脑的浏览器中键入该地址,并在其后附加 :8000,它应该会拉出页面。

于 2013-06-14T20:29:56.510 回答
6

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 服务器。

于 2013-06-14T20:29:40.053 回答
1

需要知道你机器的IP地址..确保你的两台机器(平板电脑和电脑)都连接到同一个网络

192.168.0.22 - 说出你的机器地址

做这个 :

192.168.0.22:8000 -- 来自您的平板电脑

就是这个 !!!

于 2013-06-14T20:30:26.370 回答
1

如果两者都连接到同一个网络,您需要做的就是在您的 Android 应用程序中提供服务器的 IP 地址(在您的网络中)。

于 2013-06-14T20:26:46.883 回答
0

使用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

于 2015-04-05T23:52:57.583 回答
0

试试这个 python manage.py runserver 然后将平板电脑和系统都连接到同一个 wifi 并浏览地址,例如: python manage.py runserver 192.168.0.100:8000 在平板电脑中输入地址栏中的 URL

于 2020-05-15T09:47:53.990 回答
0

我自己一直在努力解决这个问题,但我无法弄清楚它是什么,因为它在我的 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]

我希望这有帮助。

欢呼-坑

于 2015-10-16T10:25:07.723 回答