我有django项目,包含多个应用程序。 一个应用程序包含所有核心功能和代码(常见模型等)。我在一个域名上提供服务。
现在我想添加一个新的应用程序,它将使用其他应用程序的一些模型但是这个应用程序的所有URL应该在不同的域上提供。 有可能吗?
答案 0 :(得分:4)
如果您使用的是子域名,我建议您使用django-hosts。使用此库可以像这样配置您的URL:
from django_hosts import patterns, host
host_patterns = patterns('path.to',
host(r'api', 'api.urls', name='api'),
host(r'beta', 'beta.urls', name='beta'),
)
如果您使用完全不同的域,Django-Sites是一个选项。
答案 1 :(得分:2)
您可以使用自己的设置独立运行每个域网站。
通过这种方式,您可以控制使用相同代码库共享的内容。
为两个网站创建单独的设置。每个设置指定不同的ROOT_URLCONF
以及所需的任何额外设置,例如ALLOWED_HOSTS
。
为每个网站创建两个单独的网址文件,以便您可以准确指定要为该特定网域提供的网址,确保在每个ROOT_URLCONF
设置中指定此网址。
使用您已创建的设置将每个站点作为单独的实例运行。使用开发服务器的示例。
python manage.py --settings package.settings.site_a