我有多个Django项目被用作单独的服务,然后彼此使用它们作为回报。
这意味着所有服务都设置在各个端口上运行,这可能有点不可靠,因为我需要记住在启动项目时
manage.py runserver 0.0.0.0:8080
理想情况下,对于每个项目,我只使用runserver
命令,它会知道自动运行哪个端口。
这是否可以在不需要bash别名的情况下实现?
答案 0 :(得分:1)
这远远超出了开发服务器应该做的范围。如果您需要以可以实际相互通信的方式运行应用程序,即使在开发中,您也应该使用更可配置的服务器。 Gunicorn是理想的。然后你可以使用Foreman(或Python端口,Honcho)这样的东西和一个列出所有应用程序及其端口的Procfile,然后用一个命令启动整个事情。
答案 1 :(得分:0)
考虑一下:该信息必须存储在某个地方。因此,您可以将其放在配置文件中,并创建一个加载适当主机和端口的脚本来运行。 manage.py
文件不支持特定的配置文件,因此您需要在manage.py. The script would then call
manage.py runserver host:port`之外执行此操作,并提供正确的详细信息。
答案 2 :(得分:0)
我曾试图这样做,我想也许我会在setting.py
中设置默认端口。
当我挖掘代码时,我发现默认端口号在django/core/management/commands/runserver.py
中定义。它被所有django项目使用,因此您无法为不同的django项目设置单独的默认端口。