Python PostgreSQL Psycopg2
【转】 http://daigong.iteye.com/blog/901160
Python如果要操作Postgresql,需要一个API,这就需要Psycopg2
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了
Python PostgreSQL Psycopg2的更多相关文章
- Python使用psycopg2模块操作PostgreSQL
https://blog.csdn.net/pcent/article/details/78643611
- ubuntu 14.04 安装python包psycopg2
http://stackoverflow.com/questions/28253681/you-need-to-install-postgresql-server-dev-x-y-for-buildi ...
- Class to connect postgres with python in psycopg2
For we need to connect the postgres db in project very frequently, so write the follows class: impor ...
- python安装psycopg2
vim ~/.bash_profile export PATH=/Applications/Postgres.app/Contents/Versions/9.4/bin/:$PATH pip inst ...
- PostgreSQL连接python,postgresql在python 连接,创建表,创建表内容,插入操作,选择操作,更新操作,删除操作。
安装 PostgreSQL可以用Python psycopg2模块集成. sycopg2是Python编程语言的PostgreSQL数据库的适配器. 其程序代码少,速度快,稳定.不需要单独安装这个模块 ...
- PostgreSQL连接Python
安装 PostgreSQL可以用Python psycopg2模块集成. sycopg2是Python编程语言的PostgreSQL数据库的适配器. 其程序代码少,速度快,稳定.不需要单独安装这个模块 ...
- python 操作PostgreSQL
pip install psycopg Python psycopg2 模块APIs 以下是psycopg2的重要的的模块例程可以满足Python程序与PostgreSQL数据库的工作. S.N. A ...
- python连接mysql、sqlserver、oracle、postgresql数据库的一些封装
包括python连接数据库,以及django下配置连接数据库 # -*- coding:utf-8 -*- import psycopg2 import pymysql import pymssql ...
- Python 操作 PostgreSQL 数据库
我使用的是 Python 3.7.0 PostgreSQL可以使用psycopg2模块与Python集成. sycopg2是用于Python编程语言的PostgreSQL数据库适配器. psycopg ...
随机推荐
- 微信小程序自定义底部导航栏组件+跳转
微信小程序本来封装有底部导航栏,但对于想自定义样式和方法的开发者来说,这并不是很好. 参考链接:https://github.com/ljybill/miniprogram-utils/tree/ma ...
- 「LibreOJ β Round #2」计算几何瞎暴力
https://loj.ac/problem/517 题解 首先我们如果没有排序这个骚操作的话,可以直接记一下各个数位的前缀和,然后异或标记给全局打,查询的时候先把区间信息提取出来然后整体异或就好了. ...
- D. White Lines
D. White Lines 给定一个$n\times n$的$WB$矩阵,给定一个$k*k$的能把$B$变成$W$的橡皮擦,求橡皮擦作用一次后,全为$W$的行.列总数最大值 前缀和差分 #inclu ...
- 在ubuntu12.4上安装minigui3.0.12
在ubuntu12.4上安装minigui3.0.12 一下载源文件 移植所需的文件可以从minigui官网下载:http://www.minigui.org/en/download/ 主要文件有 ...
- MySQL多表查询合并结果union all,内连接查询
MySQL多表查询合并结果和内连接查询 1.使用union和union all合并两个查询结果:select 字段名 from tablename1 union select 字段名 from tab ...
- WCF - Home
https://www.tutorialspoint.com/wcf/index.htm WCF Tutorial WCF stands for Windows Communication Found ...
- Linux内核调试方法总结之backtrace
backtrace [用途]用户态或者内核态程序异常退出时回溯堆栈信息 [原理]通过对当前堆栈的分析,回溯上层函数在当前栈中的帧地址,直至顶层函数.帧地址是指在栈中存在局部变量.上一级函数返回地址.寄 ...
- DAY 6 TEST
test T1 样例输入 样例输出 答案选择u,v作为关键点 暴力的话k^2枚举跑最短路,寻找最小值就行了 50pts 考虑优化枚举量 因为答案的两个点是不同的点,所以编号的二进制表示中至少一位不同 ...
- easyui表格适应bootstrap
.panel1 { overflow: hidden; text-align: left; margin:; border:; -moz-border-radius: 0 0 0 0; -webkit ...
- clientdataset 修改记录 成功
procedure TForm7.Label33Click(Sender: TObject);var i,j,k:integer;begin i:=self.DBGrid1.SelectedField ...