Django根据子域名使用不同的settings.py文件
如何让Django根据子域名使用不同的settings.py文件。
如果有不同的设置连接到不同的数据库,这些工具(“django-admin”,“python manage.py”)还能用吗?
1 个回答
5
好的,你需要考虑两个方面来设置你的环境:
- 域名(网站)
- 当前机器
以下是我的建议:
universal_settings.py
- 这里面放的是你希望在所有地方(所有机器、所有域名)都能使用的设置。
local_settings.py
- 这里面是针对每台机器的设置(比如数据库设置、邮件服务器等)。
site_1.py
- 这是针对你某个特定域名的设置。
site_2.py
- 这是另一个特定域名的设置。
site_n.py
- 你明白这个意思了吧。
在 universal_settings.py
的底部应该包含:
from local_settings import *
这样可以根据需要覆盖通用设置中的任何内容。
同样,每个 site_1.py
、site_2.py
、site_n.py
的设置文件应该以以下内容开始:
from universal_settings import *
最后,你需要为每个域名设置一个 apache(或 nginx,或者其他)实例,并使用相应的 site_n.py
作为该服务器的设置文件。
这是我觉得最有效的方法 :)