在现代Web开发和数据处理中,PostgreSQL 是一个功能强大、开源的对象关系型数据库系统。而 Psycopg(通常指 Psycopg2)则是 Python 中最流行、最稳定的 PostgreSQL客户端 库之一。本教程将手把手教你如何使用 Psycopg2 在 Python 中连接、查询和操作 PostgreSQL 数据库,即使你是编程小白也能轻松上手!

Psycopg 是一个用于 Python 的 PostgreSQL 数据库适配器。它实现了 Python DB API 2.0 规范,并提供了对 PostgreSQL 特有功能(如数组、JSON、异步查询等)的良好支持。目前主流版本是 psycopg2 和新一代的 psycopg3,本文以更广泛使用的 psycopg2 为例。
首先,你需要确保已安装 Python 和 pip。然后在终端或命令提示符中运行以下命令:
pip install psycopg2-binary注意:生产环境中建议使用
psycopg2(从源码编译),但初学者可先用psycopg2-binary快速上手,避免编译依赖问题。
要连接数据库,你需要知道以下信息:
下面是一个完整的连接示例:
import psycopg2try: # 建立数据库连接 conn = psycopg2.connect( host="localhost", database="mydb", user="myuser", password="mypassword", port="5432" ) print("✅ 成功连接到 PostgreSQL 数据库!") # 创建游标对象 cur = conn.cursor() # 执行 SQL 查询 cur.execute("SELECT version();") db_version = cur.fetchone() print("PostgreSQL 版本:", db_version)except Exception as e: print("❌ 连接失败:", e)finally: # 关闭游标和连接 if 'cur' in locals(): cur.close() if 'conn' in locals(): conn.close()CRUD 即创建(Create)、读取(Read)、更新(Update)、删除(Delete)。下面演示如何使用 Psycopg2 实现这些基本操作。
cur.execute(''' CREATE TABLE IF NOT EXISTS users ( id SERIAL PRIMARY KEY, name VARCHAR(100) NOT NULL, email VARCHAR(100) UNIQUE NOT NULL )''')conn.commit() # 注意:写操作需要提交事务cur.execute( "INSERT INTO users (name, email) VALUES (%s, %s)", ("张三", "zhangsan@example.com"))conn.commit()⚠️ 安全提示:永远不要拼接 SQL 字符串!使用
%s占位符可防止 SQL 注入攻击。
cur.execute("SELECT * FROM users WHERE name = %s", ("张三",))rows = cur.fetchall()for row in rows: print(row)# 更新cur.execute("UPDATE users SET email = %s WHERE name = %s", ("newemail@example.com", "张三"))conn.commit()# 删除cur.execute("DELETE FROM users WHERE name = %s", ("张三",))conn.commit()conn.commit(),否则更改不会保存。psycopg2.Error 等异常,避免程序崩溃。psycopg2.pool 提高性能。通过本教程,你已经掌握了如何使用 Psycopg PostgreSQL客户端 在 Python 中连接和操作 PostgreSQL 数据库。无论是进行数据分析、Web 后端开发还是自动化脚本编写,Python连接PostgreSQL 都是一项核心技能。
希望这篇 Psycopg2教程 能帮助你快速入门!如果你正在构建一个需要持久化存储的应用,不妨从今天开始尝试用 Psycopg2 操作你的 PostgreSQL数据库操作 吧!
Happy Coding! 🐍📊
本文由主机测评网于2025-12-20发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/20251210416.html