【问题标题】:Django project - serve one of the apps on different domainDjango 项目 - 为不同域上的应用程序之一提供服务
【发布时间】:2015-05-22 07:45:51
【问题描述】:

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

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

【问题讨论】:

    标签: python django django-views django-urls


    【解决方案1】:

    如果您使用子域,我建议您使用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 是一个选项。

    【讨论】:

      【解决方案2】:

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

      通过这种方式,您可以使用相同的代码库控制他们共享的数量。

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

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

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

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

      【讨论】:

      • 您能否建议如何在生产环境中运行 - 像 webfaction 这样的共享主机?
      • 使用这种方法,您将有效地运行两个共享相同代码库的 python 进程。不确定这在 webfraction 等共享主机中是否可行。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 2021-01-22
      • 1970-01-01
      相关资源
      最近更新 更多