Python模块psycopg2连接postgresql的实现

 更新时间:2023年07月31日 10:13:56   作者:〖羊头〗➫ lsy  
本文主要介绍了Python模块psycopg2连接postgresql的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1. 基础语法

语法

psycopg2.connect(
    dsn         #指定连接参数。可以使用参数形式或 DSN 形式指定。
    host        #指定连接数据库的主机名。
    dbname      #指定数据库名。
    user        #指定连接数据库使用的用户名。
    password    #指定连接数据库使用的密码。
    port        #指定连接数据库的端口号。
    connection_factory  #指定创建连接对象的工厂类。
    cursor_factory      #指定创建游标对象的工厂类。
    async_      #指定是否异步连接(默认False)。
    sslmode     #指定 SSL 模式。
    sslrootcert #指定证书文件名。
    sslkey      #指定私钥文件名。
    sslcert     #指定公钥文件名。
)

2. 基础用法

import psycopg2
# 连接数据库
conn_pg = psycopg2.connect("host=localhost dbname=test user=postgres password=123456 port=5432")
# 创建一个游标
cur = conn_pg.cursor()
# 执行SQL语句
cur.execute("select * from t1 limit 10;")
# 获取返回的结果
rows = cur.fetchall()
# 遍历每行结果(也可以直接打印,输出格式为列表)
for i in rows:
    print(i)
# 关闭游标
cur.close()
# 关闭连接
conn_pg.close()

结果如下

3. 多条SQL

多条SQL语句直接放入 execute 方法中即可

import psycopg2
# 编写要执行的SQL语句
sql_statements = """
    SELECT * FROM t1 WHERE c1 = 1;
    UPDATE t1 SET c2 = 'yt' WHERE c1 = 1;
    SELECT * FROM t1 WHERE c1 = 1;
"""
# 连接数据库
with  psycopg2.connect("host=localhost dbname=test user=postgres password=123456 port=5432") as conn_pg:
    with conn_pg.cursor() as cur:
        # 执行SQL语句
        cur.execute(sql_statements)
        # 获取返回的结果
        rows = cur.fetchall()
        # 输出结果
        print(rows)
        # 提交事务
        conn_pg.commit()

这种方法只返回最后一条SQL语句的结果,如果需要全部返回,使用遍历的方法逐条发送即可

4. 事务SQL

#!/usr/bin/python
import psycopg2
# 连接数据库
with  psycopg2.connect("host=localhost dbname=test user=postgres password=123456 port=5432") as conn_pg:
    with conn_pg.cursor() as cur:
        try:
            cur.execute("BEGIN") #开始事务
            cur.execute("INSERT INTO t1 VALUES (1, 'abc');")
            cur.execute("UPDATE t1 SET c2 = 'def' WHERE c1 = 1;")
            conn_pg.commit()     #提交事务
        except:
            conn.rollback()      #回滚事务

到此这篇关于Python模块psycopg2连接postgresql的实现的文章就介绍到这了,更多相关Python连接postgresql内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 总结用Pdb库调试Python的方式及常用的命令

    总结用Pdb库调试Python的方式及常用的命令

    大家都知道Python是自带Pdb库,使用Pdb调试Python程序还是很方便的。但是远程调试、多线程,Pdb是搞不定的,下面一起来看看用Pdb库调试Python的方式及常用的命令。
    2016-08-08
  • Tensorflow获取张量Tensor的具体维数实例

    Tensorflow获取张量Tensor的具体维数实例

    今天小编就为大家分享一篇Tensorflow获取张量Tensor的具体维数实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Python退出时强制运行一段代码的实现方法

    Python退出时强制运行一段代码的实现方法

    这篇文章主要介绍了Python退出时强制运行一段代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • Python中使用装饰器和元编程实现结构体类实例

    Python中使用装饰器和元编程实现结构体类实例

    Python中使用装饰器和元编程实现结构体类实例,本文的方法算是一种Python的黑魔法技术,并非Python的常规写法,需要的朋友可以参考下
    2015-01-01
  • PyTorch 迁移学习实践(几分钟即可训练好自己的模型)

    PyTorch 迁移学习实践(几分钟即可训练好自己的模型)

    这篇文章主要介绍了PyTorch 迁移学习实践(几分钟即可训练好自己的模型),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Python 实现文件打包、上传与校验的方法

    Python 实现文件打包、上传与校验的方法

    今天小编就为大家分享一篇Python 实现文件打包、上传与校验的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • 使用Python计算几何形状的表面积与体积

    使用Python计算几何形状的表面积与体积

    这篇文章主要给大家介绍了关于使用Python计算几何形状的表面积与体积的相关资料,Python可以使用不同的库来进行几何图形的面积计算,比如math、numpy、scipy、sympy等,文中给出了详细的实例代码,需要的朋友可以参考下
    2023-06-06
  • protobuf 序列化和反序列化操作流程

    protobuf 序列化和反序列化操作流程

    Protocol Buffers(protobuf)是一种轻量级的数据交换格式,可以用于结构化数据的序列化和反序列化,它使用二进制格式来编码数据,以提高传输效率和数据压缩比,这篇文章主要介绍了protobuf 序列化和反序列化操作流程,需要的朋友可以参考下
    2024-06-06
  • Python实现查找最小的k个数示例【两种解法】

    Python实现查找最小的k个数示例【两种解法】

    这篇文章主要介绍了Python实现查找最小的k个数,结合实例形式对比分析了Python常见的两种列表排序、查找相关操作技巧,需要的朋友可以参考下
    2019-01-01
  • 使用spyder3调试python程序的实现步骤

    使用spyder3调试python程序的实现步骤

    本文主要介绍了使用spyder3调试python程序的实现步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12

最新评论