使用Psycopg2连接openGauss 3.0(python3)

在使用 Python 连接 openGauss 数据库时,需要使用 Psycopg 来进行连接。openGauss 官方提供的编译包仅支持 Python 3 。若要使用 Python 2 ,则需要手动编译安装。本文首先介绍官方提供的 Python 3 版本如何正确使用,后面会再写一篇文章介绍使用 Python 2 时如何进行编译安装。
本文测试环境使用的是 麒麟 V10 SP2 操作系统,openGauss 3.0 数据库。

目录

  • 1 从openGauss官网上下载编译好的psycopg2压缩包
  • 2 解压对应的驱动包
  • 3 将 psycopg2 目录权限修改为 755
  • 4 配置 LD_LIBRARY_PATH 环境变量
  • 5 加载数据库驱动程序以确认是否正确配置
  • 6 Python 3 连接 openGauss 数据库测试
    • 测试创建表
    • 测试插入数据
    • 测试查询数据
    • 测试更新数据
    • 测试删除数据

1 从openGauss官网上下载编译好的psycopg2压缩包

下载地址:https://www.opengauss.org/zh/download/
使用Psycopg2连接openGauss 3.0(python3)_第1张图片
从中选择所需的操作系统及cpu架构对应的版本。麒麟 V10 SP1/SP2 等使用openeuler内核的操作系统选择openeuler对应版本即可。

2 解压对应的驱动包

将 psycopg2 拷贝到 python 安装目录的第三方包文件夹(即 site-packages 目录)下。
使用 find 命令查询 site-packages 目录所在位置

find / -name site-packages

在这里插入图片描述
这里我们选择将其解压到 /usr/lib/python3.7/site-packages 下

tar -zxvf openGauss-3.0.0-openEuler-x86_64-Python.tar.gz -C /usr/lib/python3.7/site-packages

使用Psycopg2连接openGauss 3.0(python3)_第2张图片

3 将 psycopg2 目录权限修改为 755

chmod 755 /usr/lib/python3.7/site-packages/psycopg2
ls -ld /usr/lib/python3.7/site-packages/psycopg2

在这里插入图片描述

4 配置 LD_LIBRARY_PATH 环境变量

vim .bashrc
# 添加下面环境变量
export LD_LIBRARY_PATH=/usr/lib/python3.7/site-packages/lib

# 使环境变量生效
source .bashrc

使用Psycopg2连接openGauss 3.0(python3)_第3张图片

5 加载数据库驱动程序以确认是否正确配置

python3
import  psycopg2

在这里插入图片描述
加载后没有报错即证明驱动配置正确。此处如果报错,则需要针对性处理报错内容后再试。

6 Python 3 连接 openGauss 数据库测试

测试创建表

vi createtable.py

创建 createtable.py 文件,并写入以下内容:

#!/usr/bin/python3

import psycopg2

conn = psycopg2.connect(database="prod", user="scott", password="123@qaz", host="192.168.0.151", port="15400")

cur = conn.cursor()
cur.execute('''CREATE TABLE COMPANY
       (ID INT PRIMARY KEY     NOT NULL,
       NAME           TEXT    NOT NULL,
       AGE            INT     NOT NULL,
       ADDRESS        CHAR(50),
       SALARY         REAL);''')

conn.commit()
conn.close()

执行该程序文件

python3 createtable.py

连接到数据库中查看,发现表已经创建成功
在这里插入图片描述

测试插入数据

vi insertdata.py

创建 insertdata.py 文件,并写入以下内容:

#!/usr/bin/python3

import psycopg2

conn = psycopg2.connect(database="prod", user="scott", password="123@qaz", host="192.168.0.151", port="15400")

cur = conn.cursor()

cur.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (1, 'Paul', 32, 'California', 20000.00 )");

cur.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (2, 'Allen', 25, 'Texas', 15000.00 )");

cur.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (3, 'Teddy', 23, 'Norway', 20000.00 )");

cur.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 )");

conn.commit()
conn.close()

执行该程序文件

python3 insertdata.py

连接到数据库中查看,发现数据已插入成功
在这里插入图片描述

测试查询数据

vi selectdata.py

创建 selectdata.py 文件,并写入以下内容:

#!/usr/bin/python3

import psycopg2

conn = psycopg2.connect(database="prod", user="scott", password="123@qaz", host="192.168.0.151", port="15400")

cur = conn.cursor()

cur.execute("SELECT id, name, address, salary  from COMPANY")
rows = cur.fetchall()
for row in rows:
   print("ID = ", row[0])
   print("NAME = ", row[1])
   print("ADDRESS = ", row[2])
   print("SALARY = ", row[3])

conn.close()

执行该程序文件

python3 selectdata.py

使用Psycopg2连接openGauss 3.0(python3)_第4张图片

测试更新数据

vi updatedata.py

创建 updatedata.py 文件,并写入以下内容:

#!/usr/bin/python3

import psycopg2

conn = psycopg2.connect(database="prod", user="scott", password="123@qaz", host="192.168.0.151", port="15400")

cur = conn.cursor()

cur.execute("UPDATE COMPANY set SALARY = 25000.00 where ID=1")
conn.commit

cur.execute("SELECT id, name, address, salary  from COMPANY")
rows = cur.fetchall()
for row in rows:
   print("ID = ", row[0])
   print("NAME = ", row[1])
   print("ADDRESS = ", row[2])
   print("SALARY = ", row[3])

conn.close()

执行该程序文件

python3 updatedata.py

使用Psycopg2连接openGauss 3.0(python3)_第5张图片

测试删除数据

vi deletedata.py

创建 deletedata.py 文件,并写入以下内容:

#!/usr/bin/python3

import psycopg2

conn = psycopg2.connect(database="prod", user="scott", password="123@qaz", host="192.168.0.151", port="15400")

cur = conn.cursor()

cur.execute("UPDATE COMPANY set SALARY = 25000.00 where ID=1")
conn.commit

cur.execute("SELECT id, name, address, salary  from COMPANY")
rows = cur.fetchall()
for row in rows:
   print("ID = ", row[0])
   print("NAME = ", row[1])
   print("ADDRESS = ", row[2])
   print("SALARY = ", row[3])

conn.close()

执行该程序文件

python3 deletedata.py

使用Psycopg2连接openGauss 3.0(python3)_第6张图片

你可能感兴趣的:(openGauss,python,python,数据库,开发语言,postgresql)