【发布时间】:2015-05-22 07:45:51
【问题描述】:
我有一个包含多个应用程序的 django 项目。 一个应用程序包含所有核心功能和代码(常见模型等)。我在一个域上提供它。
现在我想添加新的应用程序,该应用程序将使用其他应用程序的一些模型,但此应用程序的所有 URL 都应在不同的域上提供。 有可能吗?
【问题讨论】:
标签: python django django-views django-urls
我有一个包含多个应用程序的 django 项目。 一个应用程序包含所有核心功能和代码(常见模型等)。我在一个域上提供它。
现在我想添加新的应用程序,该应用程序将使用其他应用程序的一些模型,但此应用程序的所有 URL 都应在不同的域上提供。 有可能吗?
【问题讨论】:
标签: python django django-views django-urls
如果您使用子域,我建议您使用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 是一个选项。
【讨论】:
您可以使用各自的设置独立运行每个域站点。
通过这种方式,您可以使用相同的代码库控制他们共享的数量。
为两个站点创建单独的设置。其中每个设置指定不同的ROOT_URLCONF 以及所需的任何额外设置,例如ALLOWED_HOSTS。
为每个站点创建两个单独的 URL 文件,以便您可以准确指定要为该给定域提供的 URL,确保在每个 ROOT_URLCONF 设置中指定。
使用您已经创建的设置将每个站点作为单独的实例运行。使用开发服务器的示例。
python manage.py --settings package.settings.site_a
【讨论】: