Django根据子域名使用不同的settings.py文件

2 投票
1 回答
1075 浏览
提问于 2025-04-15 16:47

如何让Django根据子域名使用不同的settings.py文件。

如果有不同的设置连接到不同的数据库,这些工具(“django-admin”,“python manage.py”)还能用吗?

1 个回答

5

好的,你需要考虑两个方面来设置你的环境:

  1. 域名(网站)
  2. 当前机器

以下是我的建议:

universal_settings.py - 这里面放的是你希望在所有地方(所有机器、所有域名)都能使用的设置。

local_settings.py - 这里面是针对每台机器的设置(比如数据库设置、邮件服务器等)。

site_1.py - 这是针对你某个特定域名的设置。
site_2.py - 这是另一个特定域名的设置。
site_n.py - 你明白这个意思了吧。

universal_settings.py 的底部应该包含:

from local_settings import *

这样可以根据需要覆盖通用设置中的任何内容。

同样,每个 site_1.pysite_2.pysite_n.py 的设置文件应该以以下内容开始:

from universal_settings import *

最后,你需要为每个域名设置一个 apache(或 nginx,或者其他)实例,并使用相应的 site_n.py 作为该服务器的设置文件。

这是我觉得最有效的方法 :)

撰写回答