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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python利用json和pyecharts画折线图实例代码

    python利用json和pyecharts画折线图实例代码

    这篇文章主要介绍了python利用json和pyecharts画折线图实例,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • Python实现爬取腾讯招聘网岗位信息

    Python实现爬取腾讯招聘网岗位信息

    这篇文章主要介绍了如何用python爬取腾讯招聘网岗位信息保存到表格,并做成简单可视化。文中的示例代码对学习Python有一定的帮助,感兴趣的可以了解一下
    2022-01-01
  • Python 6种基本变量操作技巧总结

    Python 6种基本变量操作技巧总结

    这篇文章主要为大家总结了Python必备的6种基本变量操作技巧,文中通过图片合示例详细为大家进行了介绍,感兴趣的小伙伴可以了解一下
    2022-03-03
  • Python+wxPython实现合并多个文本文件

    Python+wxPython实现合并多个文本文件

    在 Python 编程中,我们经常需有时候,我们可能需要将多个文本文件合并成一个文件,要处理文本文件,本文就来介绍下如何使用 wxPython 模块编写一个简单的程序,能够让用户选择多个文本文件,感兴趣的可以了解下
    2023-08-08
  • django允许外部访问的实例讲解

    django允许外部访问的实例讲解

    今天小编就为大家分享一篇django允许外部访问的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • 使用Python进行QQ批量登录的实例代码

    使用Python进行QQ批量登录的实例代码

    这篇文章主要介绍了使用Python进行QQ批量登录的实例代码,代码简单易懂非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-06-06
  • python tools实现视频的每一帧提取并保存

    python tools实现视频的每一帧提取并保存

    这篇文章主要为大家详细介绍了python tools实现视频的每一帧提取并保存,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • python request post 列表的方法详解

    python request post 列表的方法详解

    这篇文章主要介绍了python request post 列表的方法详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • 在Django框架中运行Python应用全攻略

    在Django框架中运行Python应用全攻略

    这篇文章主要介绍了在Django框架中运行Python应用全攻略,在这之前必须搭建好简单的视图和模版,接下来便是本文中所述的核心内容应用配置,需要的朋友可以参考下
    2015-07-07
  • Python中将字符串转换为变量名的示例详解

    Python中将字符串转换为变量名的示例详解

    在某些情况下,您可能希望将字符串动态转换为变量名,在本文中,我们将通过四个简单的示例来探索如何在Python中将字符串转换为变量名,需要的朋友可以参考下
    2024-10-10

最新评论