小编awb*_*-ox的帖子

Django 4 使用 passfile 连接到 Postgresql:“fe_sendauth:未提供密码”

你好 SO 和 Django 社区,

我的问题与Django 4有关,因为这个版本中已经出现了使用passfile连接Postgres的功能。尽管我已经解决了有关以前版本的类似错误消息相关问题,但我没有成功解决我的问题。

我正在尝试做什么

我想将 Postgres 数据库 DB_MyProject 连接到 django MyProject。在 Django 4 中,您可以使用密码文件,而不是在 settings.py 中提供所有用户/密码信息。有关此新功能的文档位于此处这里解释了Postgres中密码文件的概念,您还可以在这里阅读有关连接服务的内容。

在按照我的最佳理解遵循这些文档后,我完成了以下操作:

  1. 在 Django 项目的 settings.py 中创建了以下 DATABASES 条目,如下所示
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'OPTIONS': {
            'service': 'db_service',
            'passfile': '.pgpass',
        },
    }
} 
Run Code Online (Sandbox Code Playgroud)
  1. 在 pg 配置目录 ( pg_config --sysconfdir) 中,使用以下信息创建文件 pg_service.conf ,如pg 文档django 文档中所示:
[db_service]
host=localhost
port=5432
dbname=DB_MyProject
user=my_postgres_user
Run Code Online (Sandbox Code Playgroud)
  1. 创建了一个 .pgpass 文件,如pg docs中所示:
localhost:5432:DB_MyProject:my_postgres_user:my_passwd
Run Code Online (Sandbox Code Playgroud)

现在,这个 .pgpass 文件存在于多个位置,这是为了使此工作正常进行的结果: …

python postgresql django-4.0

4
推荐指数
1
解决办法
3683
查看次数

标签 统计

django-4.0 ×1

postgresql ×1

python ×1