如何在我的Django应用程序中添加远程PostgreSQL数据库?

7

我想做的是在我的Django应用程序中使用2个数据库。其中一个要从远程服务器访问。Django设置类似于这样:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'snackvoxadmin'
    },
    'users': {
        .....
    }


}

数据库用户的URL类似于这个:postgres://a78adj1he81....
2个回答

11

你可以分解数据库的网址并像这样进行配置:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'mydatabase',
        'USER': 'mydatabaseuser',
        'PASSWORD': 'mypassword',
        'HOST': '127.0.0.1',
        'PORT': '5432',
    }
}

数据库URL的模式是:

postgres://user:password@host:post/database

https://docs.djangoproject.com/zh-hans/3.2/ref/settings/#databases


或者您可以使用包dj-database-url直接使用数据库URL。

例如从readme中:

import dj_database_url
DATABASES = {'default': dj_database_url.parse('postgres://...')}

太棒了!现在我只需要处理关系即可。非常感谢! - Andie Rabino
我之前在Heroku上使用了相同的PostgreSQL数据库,现在我已经迁移到PythonAnywhere,但是尽管本地应用程序可以正常连接到远程数据库,但在PythonAnywhere上却无法连接。它会出现连接错误。 - Irfan wani

1
那个URL可能包含用户名、密码和主机名/IP地址。你可以自己拆分它们,也可以使用dj-database-url库。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接