Python连接PostgreSQL数据库的完整步骤与代码示例

方予
方予
发布时间:2026-10-11 | 3人浏览过
原创

本文详解如何通过pgAdmin配置PostgreSQL服务器与数据库,并结合ConfigParser创建配置文件。随后演示使用psycopg2库在Python中解析配置、建立数据库连接、执行版本查询及安全释放资源的标准流程,助力开发者快速完成环境搭建与数据交互开发。

环境准备与PostgreSQL基础配置

第1步:安装服务端工具并初始化配置

PostgreSQL 是关系型数据库管理系统,pgAdmin 是其配套的 Web 管理客户端。安装前请前往官网下载对应操作系统(Windows / macOS / Linux)的安装包。安装过程中系统会要求设置主密码(Master Password),该密码将用于后续的服务器连接与权限验证。

安装完成后启动 pgAdmin,首次进入时会弹出密码输入框,验证通过后进入管理控制台。

第2步:在pgAdmin中创建数据服务器与数据库

新建连接前需在左侧注册表中添加数据服务器:

  • 右键 Servers → Create → Server... 打开对话框。
  • 填写 Name(服务器别名)。
  • 切换至 Connection 标签页,主机名填写 localhost,端口保持默认 5432。
  • 输入步骤1设置的主密码,点击保存即可激活连接。
pgAdmin新建服务器参数配置界面
核对主机名为localhost且端口为5432的服务器创建表单

服务器激活后,展开节点找到 Databases,右键选择 Create → Database... 创建目标库:

  • 所有者(Owner):postgres
  • 编码(Encoding):UTF-8
  • 模板(Template):postgres
  • 表空间(Tablespace):pg_default
  • 排序规则与字符类型保持默认,连接限制设为 -1(不限制)。
pgAdmin右键创建数据库菜单选项
确认数据库命名与基础定义属性的设置入口

完成参数核对后点击 Save,数据库即创建成功。

Python连接脚本开发与配置解析

第3步:创建INI配置文件与参数解析模块

为将敏感信息与应用代码分离,新建 server_info.ini 存储连接凭证:

[postgresql]
host=localhost
port=5432
database=你的数据库名
user=postgres
password=你的主密码

同时编写 config.py 利用内置 configparser 模块读取参数:

from configparser import ConfigParser

def config(filename='server_info.ini', section='postgresql'):
    parser = ConfigParser()
    parser.read(filename)

    database = {}
    if parser.has_section(section):
        params = parser.items(section)
        for param in params:
            database[param[0]] = param[1]
    else:
        raise Exception('Section {0} not found in the {1} file'.format(section, filename))

    return database
包含postgresql节的INI配置文件内容示例
检查host、database、user与password字段的拼写准确性

第4步:编写连接逻辑并执行查询

通过 pip install psycopg2-binary 安装驱动后,新建 connect.py 实现核心交互逻辑:

import psycopg2
from config import config

def connect():
    connection = None
    try:
        params = config()
        print('Connection made to the postgresql database')
        connection = psycopg2.connect(**params)

        var_cur = connection.cursor()
        print('Database version is - ')
        var_cur.execute('SELECT version()')

        version_of_database = var_cur.fetchone()
        print(version_of_database)

        var_cur.close()
    except (Exception, psycopg2.DatabaseError) as error:
        print(error)
    finally:
        if connection is not None:
            connection.close()
            print('Database connection closed.')

if __name__ == '__main__':
    connect()

上述代码执行流程说明:

  • psycopg2.connect(**params) 解包字典传入主机、端口、凭据等参数建立长连接。
  • connection.cursor() 获取游标对象,用于发送 SQL 语句。
  • var_cur.execute('SELECT version()') 触发查询,fetchone() 提取单行结果。
  • 异常捕获块拦截网络中断或认证失败,finally 确保无论是否报错都会执行 connection.close() 防止句柄泄漏。

运行验证与安全提示

直接运行 python connect.py,控制台应输出连接成功提示、版本号元组及关闭确认信息:

终端打印PostgreSQL版本信息的运行结果
对照输出结果确认版本元组格式与连接生命周期状态

总结

本文按“环境准备 → 参数分离 → 代码封装 → 异常处理”的顺序,给出了从 pgAdmin 建库到 Python 稳定连接的标准化方案。在实际项目中,建议将 INI 文件纳入版本控制忽略列表,或改用环境变量/密钥管理服务保管密码,以进一步提升安全性。以上就是Python连接PostgreSQL数据库的详细步骤与代码实现,更多关于Python数据库操作与SQL语法优化的资料请关注本站其它相关文章!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表