如何将 django 项目的默认 IP 设置为 0.0.0.0 以在 Visual Studio 2015 中进行调试?

Posted

技术标签:

【中文标题】如何将 django 项目的默认 IP 设置为 0.0.0.0 以在 Visual Studio 2015 中进行调试?【英文标题】:how to set default ip as 0.0.0.0 for a django project to debug in 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,您的解决方案给了我很多想法,但我的要求不同。我找到了一种解决方案并作为一个答案发布。再次感谢您可爱的解释。 【参考方案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/。可能还有另一个问题,但我无法弄清楚。你能告诉我这可能是什么问题吗? 对不起,我的回答有错字。已更正

以上是关于如何将 django 项目的默认 IP 设置为 0.0.0.0 以在 Visual Studio 2015 中进行调试?的主要内容,如果未能解决你的问题,请参考以下文章

使用Django框架创建项目和运行(包括默认数据库迁移)

使用Django框架创建项目和运行(包括默认数据库迁移)

使用Django框架创建项目和运行(包括默认数据库迁移)

使用Django框架创建项目和运行(包括默认数据库迁移)

Django如何将自己的网站让其他主机访问

Django ChoiceArrayField:如何设置默认值