python - 使用 psycopg2 无密码连接到数据库

标签 python django postgresql psycopg2

我的本​​地主机上有一个 postgres 数据库,无需密码即可访问

$ psql -d mwt
psql (8.4.12)
Type "help" for help.

mwt=# SELECT * from vatid;
  id   | requester_vatid |...
  -----+-----------------|...   
  1719 | IT00766780266   |...

我想从 django 访问该数据库。所以我把 DATABASES

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'mwt',
        'USER': 'shaoran',
        'HOST': 'localhost'
    }
}

由于我不需要密码来访问我的测试数据库,因此我没有在设置中提供任何 PASSWORD 值。

$ ./manage.py shell
>>> from polls.models import Vatid
>>> Vatid.objects.all()
  connection_factory=connection_factory, async=async)
  OperationalError: fe_sendauth: no password supplied

我尝试使用 PASSWORD: '' 但我收到相同的错误消息。我尝试使用 PASSWORD: None 但这也无济于事。

我一直在搜索有关此的 django 文档,但找不到任何有用的东西。是否可以配置 django.db.backends.postgresql_psycopg2 接受空密码?

最佳答案

令人惊讶的是,答案是根本不指定主机。如果你这样做,

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

然后 psycopg2 将使用 Unix 套接字以与 psql 相同的方式连接。当您指定 HOST 时,psycopg2 将使用 TCP/IP 连接,这需要密码。

关于python - 使用 psycopg2 无密码连接到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11192134/

相关文章:

python - 导入当前目录下的所有文件

python - 从字典中查找句子字谜的有效方法?

python - 直接在模型类上使用 Django 管理器与静态方法

python - FastAPI + pytest 无法清理 Django ORM

java - EclipseLink 查询 - 从学生中选择计数(*)不工作

sql - 查找表中所有数值变量的均值、标准差、百分位数

python - 将 n 个参数传递给 Python 中的函数

python - 如何从数据框中检索行名和列名?

python - 设置 Django 博客评论

sql - 1 个表有 10 亿行与 1000 个表有 100 万行