Psycopg2使用
来源:互联网 发布:php调用mssql存储过程 编辑:程序博客网 时间:2024/06/05 06:26
转载:http://www.52harry.com/program/python/2011-11-28/650.html
1. 链接PostgreSQL并设定Cursor
import psycopg2
import psycopg2.extras
conn = psycopg2.connect(host=’localhost’, port=5432, user=’postgres’, password=’postgres’, database=’test’)
# connect()也可以使用一个大的字符串参数, 比如”host=localhost port=5432 user=postgres password=postgres dbname=test”
cursor = conn.cursor(cursor_factory=psycopg2.extras.DictCursor)
#这里创建的是一个字典Cursor, 这样返回的数据, 都是字典的形式, 方便使用
2. 执行SQL脚本
cursor.execute(‘SELECT * FROM test WHERE id > %s;’, (5,))
这里的使用有一些奇怪, 有几个地方需要说明. 首先, sql脚本必须以;结尾, 不可以省略. 其次, 不管sql中有几个参数, 都需要用%s代替, 只有%s, 不管值是字符还是数字, 一律%s. 最后, 第二个参数中, 一定要传如元祖, 哪怕只有一个元素, 像我刚才的例子一样, (5)这样是不行的.
3. 得到查询结果
psycopg2提供了3种得到结果的方式, fetchone(), fetchall()和fetchmany(). fetchone()返回一条结果, 如果找不到, 返回None. fetchall()返回所有结果, 如果找不到, 返回空list. fetchmany接收1个参数, 即返回的结果数, 每次调用, 游标向后移, 找不到了, 就返回空list.
4. 查看生成的sql脚本
cursor.mogrify(‘SELECT * FROM test WHERE a = %s AND b = %s;’, (‘a’, ‘b’))
mogrify()函数会返回生成的sql脚本, 用以查看生成的sql是否正确.
5. 查看上一条执行的脚本
cursor.query
这是一个只读的属性, 用以查看上次执行的sql脚本.
6. 插入数据
执行完INSERT, UPDATE, DELETE这样的sql脚本后, 需要conn.commit()提交一下, 才会把数据提交到数据库当中. 切记.
这里有几个小技巧, 大家肯定会用的上的.
1. 取得最后插入的记录的ID
在INSERT的语句最后面加上RETURNING id即可, 比如:
cursor.execute(‘INSERT INTO test (a, b) VALUES (%s, %s) RETURNING id;’, (‘a’, ‘b’))
item = cursor.fetchone()
print item[0] #这里就是刚才插入的记录的ID了
- Psycopg2使用
- 使用MinGW编译Psycopg2
- PYthon psycopg2 数据库使用学习
- 使用psycopg2操作PostgreSQL数据库之二
- ubuntu 使用、配置postgresql以及psycopg2
- Python调用postgreSQL(使用psycopg2)
- Python:使用psycopg2模块操作PostgreSQL
- Psycopg2学习
- postgresql Psycopg2
- 在 Mac 下Django 使用PostgreSQL 出现的 No module named psycopg2
- Ubuntu安装psycopg2小记
- Mac OS安装psycopg2
- Ubuntu安装psycopg2
- mac python 安装 psycopg2
- MacOS安装psycopg2
- sudo pip install psycopg2
- Ubuntu django psycopg2 problem
- CentOS上安装psycopg2
- EF 4.1 MSDN公约的翻译和整理
- proxychains
- 计算机总线技术基础
- 插件/RCP的国际化
- AIR+NDK支持中文
- Psycopg2使用
- linux c库文件和头文件相关问题
- C#运算符
- C++实现Creational - Factory Method模式
- Python访问Sql Server
- 出现频率最高的笔试题strcpy写法
- 项目周
- 配置Apache服务器支持向目录PUT文件
- Linux CURL的安装和使用