当前位置: 首页 > 工具软件 > psycopg > 使用案例 >

psycopg2接口的基本用法

窦哲彦
2023-12-01

转载自:http://zhiwei.li/text/2012/02/05/psycopg2接口的基本用法/

 

与其他实现了DB API 2.0协议的其他数据库用户基本一致。

import psycopg2

##连接到一个存在的数据库
conn = psycopg2.connect(“dbname=test user=postgres”)
##connect()建立一个新的数据库会话,并返回一个connect实例

##打开一个光标,用来执行数据库操作
cur = conn.cursor()

##执行命令:建立一个新表

cur.execute(“CREATE TABLE test (id serial PRIMARY KEY, num integer, data varchar);”)

##传递数据用来填充查询占位符, 让Psycopg执行正确的转换(不再有SQL注入)

cur.execute(“INSERT INTO test (num, data) VALUES ('%s', '%s');” %(100, “abc’def”))

##查询数据库,取得数据作为python对象

cur.execute(“SELECT * FROM test;”)
cur.fetchone()
(1, 100, “abc’def”)

##使改变永久存入数据库

conn.commit()

##关闭到数据库的通信

cur.close()
conn.close()

python数据类型到SQL类型的适配

日期和时间对象: python内建的datetime, date, time, timedelta 被转换成 PostgreSQL的 timestamp, date, time, interval 数据类型. Time zones are supported too. The Egenix mx.DateTime objects are adapted the same way:

>>> dt = datetime.datetime.now()

>>> dt datetime.datetime(2010, 2, 8, 1, 40, 27, 425337)

>>> cur.mogrify(“SELECT %s, %s, %s;”, (dt, dt.date(), dt.time())) “SELECT ‘2010-02-08T01:40:27.425337’, ‘2010-02-08′, ’01:40:27.425337′;”

>>> cur.mogrify(“SELECT %s;”, (dt – datetime.datetime(2010,1,1),)) “SELECT ’38 days 6027.425337 seconds’;”

 

转载于:https://www.cnblogs.com/XXCXY/p/5185273.html

 类似资料: