如何从Django的两个应用程序连接一个数据库Postgresql

时间:2018-07-11 14:44:32

标签: django postgresql django-rest-framework

我有一个问题。

我在带有PostgreSQL的Django rest框架中有一个应用程序(该项目名为djangoFall),并且我使用Django构建了其他项目,名为djangoRuim,但是例如,我不知道如何连接和读取djangoRuim中的表

djangoFall与PostgreSQL的连接正常工作

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.postgresql',
    'NAME': 'colonybitdb0',
    'USER': 'postgres',
    'PASSWORD': 'root2017',
    'HOST': '127.0.0.1',
    'PORT': '5432',
} }

在这里我可以读取这样的表

from djangoFall.profile_clbt.models import HelperNotificationMsg

djangoRuim与同一个连接PostgreSQL DB连接正常,但是我不怎么读表

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.postgresql',
    'NAME': 'colonybitdb0',
    'USER': 'postgres',
    'PASSWORD': 'root2017',
    'HOST': '127.0.0.1',
    'PORT': '5432',
}}

在这里我看不到同一张表

from .models import HelperNotificationMsg # wrong true ? 

因为这里没有模型。

请帮助我,如何阅读这些表格。

2 个答案:

答案 0 :(得分:0)

您可以使用<td><img alt="" src="http://new.quikdrawers.com/image/catalog/logo.png" style="height:100px; width:332px" /></td> 对象将execute direct SQL query更改为第二个应用程序中Django生成的表的名称,也可以使用您在connection选项中为db_table分配的值第二个应用Meta。这将在这里起作用,因为您为两个应用程序使用了相同的数据库设置。

如果数据库设置不同,则需要使用驱动程序显式连接到外部数据库并执行SQL查询。

话虽如此,由于您使用的是同一个数据库,我认为您应该考虑合并这两个应用程序或打包其中一个。但这取决于您要归档的内容和总体架构。

答案 1 :(得分:0)

如果真的必须从两个不同的Django应用程序访问同一数据库,则需要执行以下操作:

  1. 在两个应用程序中创建相同的对象模型,确保每个对象成员都相同。
  2. 使用相同的凭据和URL访问数据库。
  3. 现在,这两个应用程序都可以使用隐式竞争条件保护来访问数据库,前提是数据库对此具有本地支持。 (所有现代数据库都有该支持。)