【问题标题】:manage.py runservermanage.py 运行服务器
【发布时间】:2011-08-11 17:54:33
【问题描述】:

我在跑步 python manage.py 运行服务器 从机器 A 当我试图检查机器 B 我输入的网址是http://A:8000/ 我收到一个错误,例如 系统返回:(111)连接被拒绝

【问题讨论】:

  • 默认使用localhost地址(127.0.0.1),不接受来自网络上其他机器的连接。 127.x.x.x 被认为是它自己的网络,除非明确告知,否则计算机不会在它与其其他接口之间进行路由。因此,从另一个网络连接到它不会找到打开的端口。你想要的是./manage.py runserver A:8000

标签: python django


【解决方案1】:

您可以通过

为您网络中的机器运行它

./manage.py 运行服务器 0.0.0.0:8000

然后,您将能够从网络中的任何机器访问您的服务器。 只需在浏览器中的其他机器上输入http://192.168.0.1:8000,其中192.168.0.1 是您服务器的IP……然后就可以使用了……

或者在你的情况下:

  1. 在机器上A 在命令行./manage.py runserver 0.0.0.0:8000
  2. 比在机器B中尝试浏览器类型http://A:8000
  3. 喝一口啤酒。

Source from django docs

【讨论】:

  • 是的。这正是我一直在做的事情。我在我的 ubuntu VM 中运行 django,然后在我的主机 windows 机器上连接到它以在 windows 上进行测试。
  • 对我来说它就像时钟一样工作。我也有ubuntu。我的朋友有 Windows 7。先尝试 ping 你的主机。并确保您正确调整了您的虚拟机!
  • 我使用这个版本的命令,以便我可以从我的 Parallels WinXP VM 访问我的 Mac 上的 Django 开发服务器。
  • 这样就可以连接ios设备了。
【解决方案2】:

您需要告诉 manage.py 本地 IP 地址要绑定的端口。类似于python manage.py runserver 192.168.23.12:8000。然后使用来自另一台机器的相同 ip 和端口。您可以在文档中阅读更多关于它的信息here

【讨论】:

  • 感谢您的回复,但我仍然收到类似错误:无法分配 IP 地址。
  • 您可能在外部 IP 地址上绑定了该端口。也许尝试另一个端口。还要确保您没有阻止连接的防火墙。
【解决方案3】:

我在同样的问题上苦苦挣扎并找到了一种解决方案。我想它可以帮助你。当你运行 python manage.py runserver 时,它会将 127.0.0.1 作为默认 IP 地址和 8000。127.0.0.0 与 localhost 相同,可以在本地访问。要从跨域访问它,您需要在系统 ip 或 0.0.0.0 上运行它。 0.0.0.0 可以从网络中的任何来源访问。 对于端口号,如果您想使用自己的端口号而不是默认端口号,则需要设置系统的入站和出站策略。

为此,您需要使用上面提到的命令python manage.py runserver 0.0.0.0:<your port> 运行服务器

或者,在你的 python 环境中设置一个默认的 ip 和端口。为此,请参阅我的回答 django change default runserver port

享受编码.....

【讨论】:

    【解决方案4】:

    以防万一任何 Windows 用户遇到问题,我想我会添加自己的经验。运行python manage.py runserver 0.0.0.0:8000 时,我可以使用localhost:8000 查看网址,但不能查看我的IP 地址192.168.1.3:8000

    我最终在我的无线适配器上禁用了 ipv6,并运行ipconfig /renew。在此之后,一切都按预期工作。

    【讨论】:

      【解决方案5】:

      在使用 flask.ext.script 的烧瓶中,你可以这样做:

      python manage.py runserver -h 127.0.0.1 -p 8000

      【讨论】:

        【解决方案6】:

        对于使用 CentOS7 的人,为了允许访问 8000 端口,需要在新的 SSH 连接中修改防火墙规则:

        sudo firewall-cmd --zone=public --permanent --add-port=8000/tcp
        sudo firewall-cmd --reload
        

        【讨论】:

          【解决方案7】:

          首先,更改您的目录:

          cd your_project name
          

          然后运行:

          python manage.py runserver
          

          【讨论】:

            【解决方案8】:

            我遇到了同样的问题,这是我的解决方法:

            首先,您必须知道您的 IP 地址。 在我的 Windows PC 上,在 cmd 窗口中,我运行 ipconfig 并选择我的 IP V4 地址。在我的例子中是 192.168.0.13

            上面提到的第二个:runserver 192.168.0.13:8000

            它对我有用。 我收到消息的错误是使用网关地址而不是我的 PC 地址。

            【讨论】:

              【解决方案9】:

              好的,刚刚看到这篇文章,这有点离题,但希望能解释一些事情,IP 127.0.0.1 指向您的网卡,因此您导致前往该 IP 地址的任何流量都不会离开您的计算机。

              例如,如果您没有连接到 wifi 或有线网络,笔记本电脑中的现代网卡甚至不会为您提供该 IP,因此您至少需要连接才能激活网卡。

              如果您需要在同一台机器上运行多个服务器,但又想使用域访问它们,那么您有几个选择

              1. 编辑您的计算机主机文件以定义域及其访问的 IP
              2. 使用我多年前使用 cname 记录设置的 DNS 别名 *.local.irishado.com 将指向 127.0.0.1

              所以例如这三个域将指向您的本地计算机

              将全部指向您的本地计算机,然后在 python 项目中,您将需要编辑项目设置文件 ALLOWED_HOSTS 属性以保存它将接受的域

              ALLOWED_HOSTS = ['site1.local.irishado.com']

              【讨论】:

                猜你喜欢
                • 2016-04-14
                • 2019-02-04
                • 1970-01-01
                • 1970-01-01
                • 2012-10-21
                • 2019-01-12
                相关资源
                最近更新 更多