python库之—psycopg2

简介: python库之—psycopg2

前言


psycopg2库是python用来操作postgreSQL 数据库的第三方库。


0、psycopg2库介绍


psycopg2库介绍: Psycopg2是一个用于Python编程语言的第三方库,用于访问PostgreSQL数据库系统。它提供了一组工具和方法,可以轻松地在Python程序中进行数据库操作,包括查询、插入、更新、删除等操作。


以下是Psycopg2库的一些主要特点


  • 简单易用: Psycopg2提供了简单的API,易于学习和使用。
  • 高性能: Psycopg2是基于C语言实现的,能够提供高效的数据库操作。
  • 完全兼容: Psycopg2与PostgreSQL数据库完全兼容,并支持大多数PostgreSQL特性。
  • 安全性: Psycopg2具有内置的防止SQL注入攻击的功能,能够保证数据安全。
  • 使用Psycopg2库进行数据库操作通常需要以下步骤:
  • 安装psycopg2库:可以使用pip install psycopg2来安装该库。
  • 建立数据库连接:使用psycopg2库提供的connect()方法建立与数据库的连接。
  • 执行SQL语句:使用psycopg2提供的方法执行SQL语句,如查询、插入、更新等操作。
  • 处理查询结果:如果执行的是查询操作,需要使用fetchone()或fetchall()方法来处理查询结果。
  • 关闭连接:最后需要使用close()方法关闭数据库连接。


下面是一个简单的Psycopg2库示例,演示了如何建立与PostgreSQL数据库的连接,并执行一些简单的SQL操作, 后续章节是详细介绍:

import psycopg2
# 建立数据库连接
conn = psycopg2.connect(
    host="localhost",
    database="mydatabase",
    user="myuser",
    password="your password"
)
# 执行SQL语句
cur = conn.cursor()
cur.execute("SELECT * FROM mytable")
rows = cur.fetchall()
# 处理查询结果
for row in rows:
    print(row)
# 关闭连接
cur.close()
conn.close()

一、使用pycharm连接postgresSQL

1-1、连接数据库

try :
  conn = psycopg2.connect(database='postgres', user='postgres',
  password='your password', host='127.0.0.2', port=6666)
except Exception as e:
    print('连接数据库失败!')

1-2、关闭数据库

# 连接数据库,执行了sql语句,以及进行完所有其他操作之后需要提交事务并且关闭数据库
# 提交事务
conn.commit()
# 关闭连接
conn.close()

1-3、cursor类

# psycopy2提供了一个cursor类,用来在数据库Session里执行PostgresSQL命令。
# 创建cursor对象:
cursor = conn.cursor() 
# 使用cursor对象来执行SQL语句。
cursor.execute(sql)
# 执行SQL命令后的返回结果由cursor.fetchall()接收为一个元祖的列表。
lines = cursor.fetchall()
# 例如
select timeline FROM "public".org_target_job_record WHERE target_job = 'ETL' and target_type = '本品' ORDER BY timeline DESC LIMIT 1
# 查询到的结果是20220103,cursor.fetchall()接收到的列表是这样。
# [('20220103',)]
# 使用lines[0][0]来取到第一个数字。
# 关闭cursor对象
cursor.close()

1-4、使用python的configparser包来解析配置文件

# ConfigParser 是用来读取配置文件的包
# 导入并且初始化
import configparser
config = configparser.ConfigParser()
# 读取配置文件
config.read("ini", encoding="utf-8")
# 假设配置文件如下
[db]
db_host = 127.0.0.2
db_port = 66
db_user = root
db_pass = root
host_port = 66
# 常用方法
# 获取所有的sections,‘[]’内包含的即为section。
config.sections()
# 返回列表,即 ['db']
# 获取指定section下指定的option值
config.options('db')
# 返回一个列表 
# ['db_host', 'db_port', 'db_user', 'db_pass', 'host_port']
# 获取到指定option的值
config['db']['db_host']
# 更多功能请参考链接文章


二、Psycopg2库的一些常用方法和函数


  • connect(dsn, …):建立与PostgreSQL数据库的连接。dsn是一个字典,包含了连接数据库需要的各种参数,如用户名、密码、主机名、数据库名等。
  • cursor():建立一个游标对象,用于执行SQL查询和修改等操作。
  • execute(sql[, args]):执行SQL语句。sql是要执行的SQL语句,args是可选的参数,可以是一个列表或一个字典,用于将变量传递给SQL语句。
  • fetchone():获取查询结果的下一行数据。
  • fetchall():获取所有查询结果的数据。
  • commit():提交事务。
  • rollback():回滚事务。
  • close():关闭数据库连接。



参考文章:

python库之psycopg2.

configparse模块.


总结

今天是2022年5月20日哎,分手快乐,祝你幸福。


相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
11月前
|
JavaScript 前端开发 Java
通义灵码 Rules 库合集来了,覆盖Java、TypeScript、Python、Go、JavaScript 等
通义灵码新上的外挂 Project Rules 获得了开发者的一致好评:最小成本适配我的开发风格、相当把团队经验沉淀下来,是个很好功能……
1728 103
|
6月前
|
存储 人工智能 测试技术
如何使用LangChain的Python库结合DeepSeek进行多轮次对话?
本文介绍如何使用LangChain结合DeepSeek实现多轮对话,测开人员可借此自动生成测试用例,提升自动化测试效率。
1424 125
如何使用LangChain的Python库结合DeepSeek进行多轮次对话?
|
6月前
|
监控 数据可视化 数据挖掘
Python Rich库使用指南:打造更美观的命令行应用
Rich库是Python的终端美化利器,支持彩色文本、智能表格、动态进度条和语法高亮,大幅提升命令行应用的可视化效果与用户体验。
544 0
|
8月前
|
存储 Web App开发 前端开发
Python + Requests库爬取动态Ajax分页数据
Python + Requests库爬取动态Ajax分页数据
|
5月前
|
数据可视化 关系型数据库 MySQL
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
本文详解基于Python的电影TOP250数据可视化大屏开发全流程,涵盖爬虫、数据存储、分析及可视化。使用requests+BeautifulSoup爬取数据,pandas存入MySQL,pyecharts实现柱状图、饼图、词云图、散点图等多种图表,并通过Page组件拖拽布局组合成大屏,支持多种主题切换,附完整源码与视频讲解。
573 4
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
|
5月前
|
传感器 运维 前端开发
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
本文解析异常(anomaly)与新颖性(novelty)检测的本质差异,结合distfit库演示基于概率密度拟合的单变量无监督异常检测方法,涵盖全局、上下文与集体离群值识别,助力构建高可解释性模型。
477 10
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
|
7月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
485 18
|
8月前
|
JSON 网络安全 数据格式
Python网络请求库requests使用详述
总结来说,`requests`库非常适用于需要快速、简易、可靠进行HTTP请求的应用场景,它的简洁性让开发者避免繁琐的网络代码而专注于交互逻辑本身。通过上述方式,你可以利用 `requests`处理大部分常见的HTTP请求需求。
669 51
|
机器学习/深度学习 存储 数据挖掘
Python图像处理实用指南:PIL库的多样化应用
本文介绍Python中PIL库在图像处理中的多样化应用,涵盖裁剪、调整大小、旋转、模糊、锐化、亮度和对比度调整、翻转、压缩及添加滤镜等操作。通过具体代码示例,展示如何轻松实现这些功能,帮助读者掌握高效图像处理技术,适用于图片美化、数据分析及机器学习等领域。
599 20
|
7月前
|
机器学习/深度学习 API 异构计算
JAX快速上手:从NumPy到GPU加速的Python高性能计算库入门教程
JAX是Google开发的高性能数值计算库,旨在解决NumPy在现代计算需求下的局限性。它不仅兼容NumPy的API,还引入了自动微分、GPU/TPU加速和即时编译(JIT)等关键功能,显著提升了计算效率。JAX适用于机器学习、科学模拟等需要大规模计算和梯度优化的场景,为Python在高性能计算领域开辟了新路径。
722 0
JAX快速上手:从NumPy到GPU加速的Python高性能计算库入门教程

推荐镜像

更多