Python脚本PostgreSQL连接用什么驱动

wen 实用脚本 1

本文目录导读:

Python脚本PostgreSQL连接用什么驱动

  1. 主要驱动选项
  2. 选择建议
  3. 使用 ORM 时的驱动配置
  4. 常见问题解决

对于 Python 连接 PostgreSQL,最主流和推荐的驱动是 psycopg2,以下是详细说明和替代方案:

主要驱动选项

psycopg2(最推荐)

pip install psycopg2-binary

特点:

  • 最成熟、最稳定的 PostgreSQL 适配器
  • 完全支持 Python DB-API 2.0
  • 线程安全
  • 支持异步操作(通过 psycopg2.extras

示例:

import psycopg2
conn = psycopg2.connect(
    host="localhost",
    database="mydb",
    user="user",
    password="password"
)
cur = conn.cursor()
cur.execute("SELECT * FROM table")
rows = cur.fetchall()

注意psycopg2-binary 是预编译版本,避免编译问题,生产环境建议用 psycopg2(需编译)以获得更好的性能。

psycopg3(最新版)

pip install psycopg

特点:

  • psycopg2 的下一代版本
  • 更好的性能
  • 原生异步支持
  • 更简洁的 API

asyncpg(异步首选)

pip install asyncpg

特点:

  • 专为 asyncio 设计
  • 性能极佳(比 psycopg2 快 2-3 倍)
  • 适合高并发场景

示例:

import asyncpg
import asyncio
async def main():
    conn = await asyncpg.connect(
        user='user',
        password='password',
        database='mydb',
        host='localhost'
    )
    values = await conn.fetch("SELECT * FROM table")
    await conn.close()
asyncio.run(main())

选择建议

场景 推荐驱动
一般应用 psycopg2(最稳定)
新项目 psycopg3
异步/协程 asyncpg
ORM 框架 SQLAlchemy、Django ORM(底层可用 psycopg2)

使用 ORM 时的驱动配置

SQLAlchemy

# pip install sqlalchemy psycopg2-binary
from sqlalchemy import create_engine
engine = create_engine('postgresql://user:password@localhost/mydb')

Django

# settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'mydb',
        'USER': 'user',
        'PASSWORD': 'password',
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

常见问题解决

连接池使用(psycopg2):

from psycopg2 import pool
connection_pool = pool.SimpleConnectionPool(
    1, 20,  # 最小/最大连接数
    user="user",
    password="password",
    host="localhost",
    database="mydb"
)
conn = connection_pool.getconn()
# 使用连接...
connection_pool.putconn(conn)

如果是新项目,推荐 psycopg3asyncpg;如果需要稳定性和广泛支持,选择 psycopg2

抱歉,评论功能暂时关闭!