1.Base基础/3.Icon图标/操作/search备份
1.Base基础/3.Icon图标/操作/search备份
EN
文档
关于AntDB
部署与升级
快速入门
使用教程
SQL语言
Oracle兼容
分布式功能
驱动使用说明
运维
调优
工具和插件
高级服务
数据安全
参考
  • 文档首页 /
  • 使用教程 /
  • 驱动使用说明 /
  • 基于python

基于python

更新时间:2024-07-01 14:39:47

安装 psycopg2

在 Centos 下,直接执行:

yum install python-psycopg2

安装好 psycopg2 之后,进行测试:

python -c "import psycopg2"

返回空,表示安装成功。

连接 AntDB

如果有使用 python 连接 postgres 的经验,那在 AntDB 中操作是完全一样的。

首先需要 import psycopg2,然后使用 psycopg2 提供的 conn 方法创建连接即可。代码示例如下:

import psycopg2 
conn = psycopg2.connect(database="postgres", user="dang31", password="123", host="10.1.226.256", port="1234")

此时就创建好了一个连接,供后续使用。

在进行数据库操作之前,需要先建立一个 cursor,在 cursor 中进行相应的操作:

cur = conn.cursor()

创建表:

cur.execute("create t_test (id int,name text)")

插入数据:

cur.insert("insert into t_test values (1,'name')")

删除数据:

cur.execute("delete from t_test where id=%s",(3,))

更新数据:

cur.execute("update t_test set name=%s where id=%s",('c',1))

查询数据:

cur.execute("select * from t_test;") 
rows = cur.fetchall() 
pprint.pprint(rows)

完整的脚本如下:

#!/usr/bin/env python 
\# -*- coding: UTF-8 -*- 

import psycopg2 
import sys 
import pprint 

adb_conn="dbname=postgres user=dang31 password=123 host=10.1.226.256 port=1234" 

try:
   conn = psycopg2.connect(adb_conn) 
except psycopg2.Error as e: 
   print"Unable to connect!" 
   print e.pgerror 
   print e.diag.message_detail 
   sys.exit(1) 
else:
   print"Connected!" 
   cur = conn.cursor() 
\#该程序创建一个光标将用于整个数据库使用Python编程。 
print ("version:") 
cur.execute("select version();") 
rows = cur.fetchall() 
pprint.pprint(rows) 
print ("create table") 
cur.execute("create table t_test (id int,name text);") 
print ("insert into table") 
cur.execute("insert into t_test (id,name) values (%s,%s)",(1,'a')) 
cur.statusmessage 
cur.execute("insert into t_test (id,name) values (%s,%s)",(3,'b')) 
cur.mogrify("insert into t_test (id,name) values (%s,%s)",(3,'b')) 
cur.execute("select * from t_test;") 
print ("fetchone") 
row = cur.fetchone() 
pprint.pprint(row) 
cur.execute("select * from t_test;") 
rows = cur.fetchall() 
print ("fetchall") 
pprint.pprint(rows) 
print ("delete from table") 
cur.execute("delete from t_test where id=%s",(3,)) 
cur.execute("select * from t_test;") 
rows = cur.fetchall() 
pprint.pprint(rows) 
print ("update table") 
cur.execute("update t_test set name=%s where id=%s",('c',1)) 
cur.execute("select * from t_test;") 
rows = cur.fetchall() 
pprint.pprint(rows) 
print ("drop table") 
cur.execute("drop table if EXISTS t_test "); 

conn.commit() 
#connection.commit() 此方法提交当前事务。如果不调用这个方法,无论做了什么修改,自从上次调用 
#commit()是不可见的,从其他的数据库连接。 
conn.close()
#connection.close() 此方法关闭数据库连接。请注意,这并不自动调用commit()。如果你只是关闭数 据库连接而不调用commit()方法首先,那么所有更改将会丢失

输出结果为:

Connected! 
version: 
[('PostgreSQL 11.6 ADB 5.0.0 37c61ca18f on x86_64-pc-linux-gnu, compiled by gcc 
(GCC) 4.8.5 20150623 (Red Hat 4.8.5-36), 64-bit',)] 
create table 
insert into table 
fetchone 
(3, 'b') 
fetchall 
[(1, 'a'), (3, 'b')] 
delete from table 
[(1, 'a')] 
update table 
[(1, 'c')] 
drop table 

更多的操作,可以参考psycopg 的文档:https://www.psycopg.org/docs/index.html

问题反馈