【问题标题】:how to set default ip as 0.0.0.0 for a django project to debug in visual studio 2015?如何将 django 项目的默认 IP 设置为 0.0.0.0 以在 Visual Studio 2015 中进行调试?
【发布时间】:2016-10-31 22:20:22
【问题描述】:

我正在使用 Visual Studio 2015、python 2.7、django 1.9 开发一个django rest framework 应用程序。我已启用 CORS。当我通过命令提示符以python manage.py runserver 0.0.0.0:8086 运行它时,我可以从其他来源访问它。但是,在 Visual Studio 自动调试中,它在 127.0.0.0 上运行。我想将 Visual Studio 配置为在指定的 IP(即 0.0.0.0)上运行服务器。所以,调试会很容易。
我尝试从site-packages\django\core\management\commands\runserver.py 设置默认端口和地址。
并且还能够在项目的 Visual Studio 属性中设置默认端口。但是,无法设置默认ip。

谁能帮我将 ip 0.0.0.0 配置为默认值,而不是 Visual Studio 中的默认值 (127.0.0.1)。

提前致谢。

【问题讨论】:

  • 不知何故,我可以通过将属性窗口中Run Server Command 中的Arguments 修改为runserver 0.0.0.0:%SERVER_PORT% $(CommandLineArguments) 来解决问题。但是,我想这不是正确的解决方案。因为,重新修改它会产生异常。
  • 您的解决方案对我来说听起来不错。它有什么问题?
  • 是的,绫,时机很好。但是,我想知道是否有任何方法可以在 Visual Studio 配置中的某个位置进行配置。因此,以后如果我需要重新修改设置,它应该不会产生任何问题。因为之前的配置一旦修改就不接受了。
  • 我的解决方案对您有用吗?
  • 是的 e4c5,您的解决方案给了我很多想法,但我的要求不同。我找到了一种解决方案并作为一个答案发布。再次感谢您可爱的解释。

标签: python django visual-studio-2015 django-rest-framework django-cors-headers


【解决方案1】:

这是可以在"args" 的值列表中添加/更改的方式。

$ cat .vscode/launch.json
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Django",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}/manage.py",
            "args": [
                "runserver",
                "--noreload"
            ],
            "django": true
        }
    ]
}

【讨论】:

    【解决方案2】:

    经过这么多的努力,我找到了一个解决方案,想与你分享。希望你会喜欢。 打开<your python location>\Lib\site-packages\django\core\management\commands\runserver.py 并找到一个处理self.addr 的代码。
    if not self.addr: self.addr = '::1' if self.use_ipv6 else '127.0.0.1' 它将默认地址设置为 127.0.0.1 将其更改为 '0.0.0.0'。现在,如果您只使用命令 ./manage.py runserver 运行服务器,它将在 0.0.0.0 上运行,即使在 Visual Studio 中也是如此。

    祝你好运。

    【讨论】:

    • 上帝保佑你!!
    【解决方案3】:

    首先0.0.0.0不是IP。它代表“本地机器上的所有 IPv4 地址”。当你启动开发服务器时

    ./manage.py runserver 0.0.0.0:8086
    

    它将在 127.0.0.1 和您为网络接口配置的任何其他 IP 地址上提供服务

    同样,它无法在127.0.0.0 上提供服务,因为那是一个广播地址。

    如果您在计算机上配置了任何其他 IP(例如 192.168.1.1),您可以在局域网中任何计算机上的浏览器或要求 IP 地址的 Visual Studio 中输入该 IP。

    【讨论】:

    • 谢谢e4c5。但问题是当我运行runserver 9192 并尝试使用我的ip 访问时,它显示There was an error connecting to http://192.168.1.63:9192/。可能还有另一个问题,但我无法弄清楚。你能告诉我这可能是什么问题吗?
    • 对不起,我的回答有错字。已更正
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-29
    • 1970-01-01
    • 2017-12-01
    • 1970-01-01
    • 2012-11-06
    相关资源
    最近更新 更多