我们可以将连接到不同数据库的两个Django / python应用程序组合成一个集成的应用程序

时间:2012-12-05 19:08:05

标签: python django

我有两个连接到不同dbs的独立django应用程序。我想创建一个父应用程序,将请求路由到两个子应用程序之一。

有可能,我怎样才能实现这一目标?父应用程序不必连接到任何数据库,它应该只将请求路由到子应用程序。

感谢您的帮助。

1 个答案:

答案 0 :(得分:6)

这是可能的。在Django中,将应用程序视为可以拼凑并组合的库。所以假设您有以下内容:

  1. App A连接到db A
  2. App B连接到db B
  3. 你可以创建一个django项目。将这两个应用程序放入安装应用程序INSTALLED_APPS中。请查看django文档中Multiple databases部分。它将解释如何配置您的应用程序,以便它们自动路由到正确的数据库。最后,您不需要创建第三个父应用程序。然后编辑项目的urls.py并为每个应用定义路由。您也可以从应用B调用应用A,并根据需要将请求从一个重定向到另一个。

    示例urls.py

    from django.conf.urls import patterns, include, url
    from django.contrib import admin
    admin.autodiscover()
    urlpatterns = patterns('',
        url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
        url(r'^admin/', include(admin.site.urls)),
    )
    

    上面的示例将两个单独的应用程序路由到两个不同的URL。这些应用django.contrib.admindocsdjango.contrib.admin都附带了Django。该示例取自2nd part of the Django tutorial