设置Django项目默认端口

1 投票
3 回答
606 浏览
提问于 2025-04-18 12:55

我有多个Django项目,它们各自作为独立的服务使用,同时这些服务之间也会互相调用。

这就意味着所有的服务都要在不同的端口上运行,这有点麻烦,因为我需要记住在启动项目时使用哪个端口。

manage.py runserver 0.0.0.0:8080

理想情况下,我希望每个项目只用 runserver 命令就能自动知道该用哪个端口来运行。

这样做有没有可能,不需要使用bash别名呢?

3 个回答

0

我之前也尝试过这样做,我想也许可以在 setting.py 文件里设置默认端口。

但是当我深入研究代码时,我发现默认端口号是在 django/core/management/commands/runserver.py 这个文件里定义的。这个端口是所有 Django 项目共用的,所以你不能为不同的 Django 项目设置不同的默认端口。

0

想想这个问题:信息必须存储在某个地方。所以你可以把它放在一个配置文件里,然后写一个脚本来加载合适的主机和端口来运行。manage.py 文件本身不支持特定的配置文件,所以你需要在manage.py 之外来处理这个问题。然后这个脚本会用正确的细节来调用 manage.py runserver host:port

1

这已经超出了开发服务器应该做的事情。如果你需要让你的应用在开发时能够互相交流,那你可能需要使用一个更灵活的服务器。Gunicorn 是个不错的选择。这样你就可以使用像 Foreman(或者它的 Python 版本 Honcho)这样的工具,配合一个列出所有应用及其端口的 Procfile,然后只需一个命令就能启动所有应用。

撰写回答