Python读取postgresql数据库详情
作者:水w 发布时间:2024-01-29 13:01:17
一、读取postgresql数据库
(1)首先,我们需要安装 psycopg 驱动。通过 pip 安装最新的 psycopg
pip install psycopg2 -i https://pypi.tuna.tsinghua.edu.cn/simple
(2) 创建一个数据库连接的配置文件 dbconfig.ini,添加以下内容:
[postgresql]
host = [ip地址]
port = 5432
database = xxx
user = xxx
password = xxx
配置文件中存储了数据库的连接信息:主机、端口、数据库、用户以及密码;我们需要按照自己的环境进行配置。
(3)然后,新建一个测试数据库连接的 Python 文件 postgresql_connection.py,
文件目录结构为:
postgresql_connection.py的完整代码为:
# 导入 psycopg2 模块和 Error 对象
import psycopg2
from psycopg2 import DatabaseError
from configparser import ConfigParser
def read_db_config(filename='dbconfig.ini', section='postgresql'):
""" 读取数据库配置文件,返回一个字典对象"""
# 创建解析器,读取配置文件
parser = ConfigParser()
parser.read(filename)
# 获取 postgresql 部分的配置
db = {}
if parser.has_section(section):
items = parser.items(section)
for item in items:
db[item[0]] = item[1]
else:
raise Exception('文件 {1} 中未找到 {0} 配置信息!'.format(section, filename))
return db
if __name__ == '__main__':
db_config = read_db_config()
connection = None
try:
# 使用 psycopg2.connect 方法连接 PostgreSQL 数据库
connection = psycopg2.connect(**db_config)
cur = connection.cursor() # 创建一个游标
cur.execute('SELECT version()') # 获取 PostgreSQL 版本号
db_version = cur.fetchone()
print("连接成功,PostgreSQL 服务器版本:", db_version) # 输出 PostgreSQL 版本
# `在这里插入代码片`
cur.close() # 关闭游标
except (Exception, DatabaseError) as e:
print("连接 PostgreSQL 失败:", e)
finally:
if connection is not None: # 释放数据库连接
connection.close()
print("PostgreSQL 数据库连接已关闭。")
(4)运行程序,
首先,我们导入了 psycopg2 驱动和解析配置文件的 configparser 模块;
然后,创建一个读取配置文件的 read_db_config 函数;
接下来调用 psycopg2.connect 函数创建一个新的数据库连接;
然后通过连接对象的 cursor 函数创建一个新的游标,并且执行查询语句返回数据库的版本;
在此之后,调用游标对象的 fetchone() 方法获取返回结果并打印信息;
最后,调用 close() 方法关闭游标资源和数据库连接对象。
执行以上脚本,返回的信息如下:
连接成功,PostgreSQL 服务器版本: ('PostgreSQL 12.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39), 64-bit',)
PostgreSQL 数据库连接已关闭。
二、查询数据
游标对象提供了三种获取返回结果的方法:fetchone() 获取下一行数据,fetchmany(size=cursor.arraysize) 获取下一组数据行,fetchall() 返回全部数据行。
(1)我们创建一个新的文件 postgresql_query.py:
# 导入 psycopg2 模块和 Error 对象
import psycopg2
from psycopg2 import DatabaseError
from configparser import ConfigParser
def read_db_config(filename='dbconfig.ini', section='postgresql'):
""" 读取数据库配置文件,返回一个字典对象
"""
# 创建解析器,读取配置文件
parser = ConfigParser()
parser.read(filename)
# 获取 postgresql 部分的配置
db = {}
if parser.has_section(section):
items = parser.items(section)
for item in items:
db[item[0]] = item[1]
else:
raise Exception('文件 {1} 中未找到 {0} 配置信息!'.format(section, filename))
return db
if __name__ == '__main__':
db_config = read_db_config()
connection = None
try:
connection = psycopg2.connect(**db_config) # 使用 psycopg2.connect 方法连接 PostgreSQL 数据库
cur = connection.cursor() # 创建一个游标
# 定义 SQL 语句
sql = """ select id, name, age from users"""
cur.execute(sql) # 执行 SQL 命令
print("用户数量:", cur.rowcount)
# 获取结果
user = cur.fetchone()
while user is not None:
print(user)
user = cur.fetchone()
cur.close() # 关闭游标
except (Exception, DatabaseError) as e:
print("操作失败:", e)
finally:
if connection is not None: # 释放数据库连接
connection.close()
(2)游标对象的 rowcount 属性代表了返回的数据行数,fetchone() 方法返回一行数据或者 None,while 循环用于遍历和打印查询结果。由于 users 表中目前只有一行数据,
执行以上文件的结果如下:
用户数量: 2
(1, 'lane', False)
(2, 'lane_dynamic', False)
来源:https://blog.csdn.net/qq_45956730/article/details/127069943
猜你喜欢
- 本文实例为大家分享了Python绑定方法与非绑定方法,供大家参考,具体内容如下定义:绑定方法(绑定给谁,谁来调用就自动将它本身当作第一个参数
- 本文实例讲述了Python面向对象程序设计类变量与成员变量、类方法与成员方法用法。分享给大家供大家参考,具体如下:类变量与成员变量在类中声明
- 1.启动H2数据库不打开浏览器窗口(默认是打开的) 2.数据库创建SQL增加了支持BigDecimal类型,h2数据库默认是不支持bigde
- 同事在准备新老系统的切换,清空一个表的时候往往发现这个表的主键被另一个表用做外键,而系统里有太多层次的引用.所以清起来相当麻烦用下面这个脚本
- 这个框架主要还是思想,之后,,,还是创建项目好了,1.新建一个项目新建一个maven,并且选择webapp类型。2.点击next选项这里面的
- SQLite Delete详解SQLite 的 DELETE 查询用于删除表中已有的记录。可以使用带有 WHERE 子句的 DELETE 查
- declare @t varchar(255),@c varchar(255)declare table_cursor cursor for
- 一、requests模块说明介绍Requests是Python语言的第三方的库,专门用于发送HTTP请求。特点1.Requests支持HTT
- 相信大家对进度条一定不陌生了,比如在我们安装python库的时候可以看到下载的进度,此外在下载文件时也可以看到类似的进度条,比如下图这种:应
- 一、使用 PyCharm 软件安装 pandas 包1、打开 PyCharm2、点击右上角 “Files” →“Settings...”3、
- 前言最近需要源码部署一个项目,因此探索一下保护源码的方式,由简单到复杂主要总结为以下三大类:代码混淆:主要是改变一些函数名、变量名代码打包:
- 什么是上采样上采样,在深度学习框架中,可以简单的理解为任何可以让你的图像变成更高分辨率的技术。 最简单的方式是重采样和插值:将输入图片inp
- 本文实例讲述了python实现超简单端口转发的方法。分享给大家供大家参考。具体如下:代码非常简单,实现了简单的端口数据转发功能,用于真实环境
- 任务识别用相机拍下来的答题卡,并判断最终得分(假设正确答案是B, E, A, D, B)主要步骤轮廓识别——答题卡边缘识别透视变换——提取答
- 一、乱码的原因:1、 client客户端的编码不是utf82、server端的编码不是utf83、database数据库的编码不是utf84
- 前言最近工作中需要开发前端操作远程虚拟机的功能,简称WebShell. 基于当前的技术栈为react+django,调研了一会发现大部分的后
- 本文实例讲述了python实现将html表格转换成CSV文件的方法。分享给大家供大家参考。具体如下:使用方法:python html2csv
- 项目编写过程中,总能遇见对字典进行排序什么的,如果要实现多条件排序只需要下面几行代码实现。充分体现了python的好处了。teamitems
- 本文实例为大家分享了Python函数实现学员管理系统的具体代码,供大家参考,具体内容如下这个是一个简单的管理程序输入姓名,年龄,性别(也可以
- 列表1~n输出步长为3的分组print([[x for x in range(1,101)][i:i+3] for i in range(0