Django项目 - 在不同的域上提供其中一个应用程序

时间:2015-05-22 07:45:52

标签: python django django-views django-urls

我有django项目,包含多个应用程序。 一个应用程序包含所有核心功能和代码(常见模型等)。我在一个域名上提供服务。

现在我想添加一个新的应用程序,它将使用其他应用程序的一些模型但是这个应用程序的所有URL应该在不同的域上提供。 有可能吗?

2 个答案:

答案 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)

您可以使用自己的设置独立运行每个域网站。

通过这种方式,您可以控制使用相同代码库共享的内容。

  1. 为两个网站创建单独的设置。每个设置指定不同的ROOT_URLCONF以及所需的任何额外设置,例如ALLOWED_HOSTS

  2. 为每个网站创建两个单独的网址文件,以便您可以准确指定要为该特定网域提供的网址,确保在每个ROOT_URLCONF设置中指定此网址。

    < / LI>
  3. 使用您已创建的设置将每个站点作为单独的实例运行。使用开发服务器的示例。

    python manage.py --settings package.settings.site_a