django 一个应用一个模型多个数据库

rra*_*wat 3 python django postgresql django-models django-1.9


我是 django webapp 开发的新手,我遇到了一个问题。我创建了 1 个具有 1 个模型的应用程序,以使用 1 个表单将数据插入到数据库中。我将为此使用多个数据库。每个数据库将有 1 个表(目前)具有相同的结构。现在我的问题是:

如何为多个数据库及其各自的表仅使用 1 个模型、1 个视图和 1 个表单。数据库和表应该在调用它们各自的 url 时切换。

例如http://www.example.com/x/abc/将访问第一个数据库及其所有操作的表。
http://www.example.com/y/abc/将访问第二个数据库

我已经尝试过 django 文档中提供的示例数据库路由,但它没有多大帮助。我也找不到解决这个特定问题的相关帖子/问题

我想这样做是因为稍后我将添加更多模型和表单来访问数据库表中的数据,这对我来说似乎是最干净的方式

PS:我正在使用 django 1.9.6

zoo*_*ash 8

不管这是否是构建应用程序的一个很好的方式,你可以告诉Django该数据库读取和写入使用

Person.objects.using('db1').create(...)
Person.objects.using('db2').create(...)
Run Code Online (Sandbox Code Playgroud)

所以你不需要使用路由器,只需在你的设置中定义两个数据库并在两者上运行迁移。您的模型表将在每个数据库中创建,并且在您的代码中,您可以根据您选择的任何逻辑(例如,基于请求路径)从两个数据库中读取和写入。

请参阅https://docs.djangoproject.com/en/1.9/topics/db/multi-db/#manually-selecting-a-database