1

注意:我已经在 docs.djangoproject.com/en/dev/topics/db/multi-db 浏览了 Django 官方文档,但页面上没有任何内容回答我的问题。

我带领一个团队开发了两个 Django Web 应用程序,我们已经到了一个阶段,我们希望将每个站点上的功能都提供给彼此。通过这样做,我们将遵守 DRY 原则。

案例分析

站点 A 具有 A+ 功能,我希望通过 Django Queryset 在站点 B 上提供它,反之亦然。

至今

我在两个站点的 settings.py 文件中定义了数据库配置,在这篇文章的帮助下为所有应用程序添加了一个通用路由器配置:http: //diegobz.net/2011/02/10/django-database- router-using-settings/ 并且可以使用 from django.db 导入连接从两个站点成功查询 A 和 B 的数据库。但是,使用以下内容:

def dictfetchall(cursor):
    "Returns all rows from a cursor as a dict"
    desc = cursor.description
    return[
        dict(zip([col[0] for col in desc], row))
        for row in cursor.fetchall()
        ]

我得到对象数据的列表,而不是查询集。

问题

  1. 这是解决上述问题的正确方法吗?
  2. 有没有办法使用上述实现导入/返回查询集/可迭代模型对象?
  3. 是否有可以处理 Django 多数据库连接的 API?如果是,请提供链接?

感谢您的时间。

我的解决方案(暂时)

看来我之前计划使用的策略有点矫枉过正。所以,我决定采用不同的策略。然而,它似乎让我半途而废,但我预见它会导致干燥。

解决方案是让两个站点上的 REST-API 以 json 格式返回数据。

即调用站点A的API,加载返回的数据并在站点B进行处理。

4

0 回答 0