设置Django项目默认端口
我有多个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,然后只需一个命令就能启动所有应用。