简介

Psycopg 是Python语言的PostgreSQL数据库接口。 它的主要优势在于完全支持Python DB API 2.0,以及安全的多线程支持。它适用于随时创建、销毁大量游标的、和产生大量并发INSERT、UPDATE操作的多线程数据库应用。Psycopg包内含 ZPsycopgDA,一个Zope数据库接口。

示例1:新建表、插入、修改

#-*- coding: utf- -*-
import psycopg2 def main(user,pwd,ip,port,dbname):
connection = "dbname=%s user=%s password=%s host=%s port=%s" % (dbname, user,pwd, ip, port) db = psycopg2.connect(connection)
cur = db.cursor()
#创建表
sql_stat = "CREATE TABLE test_class_id(id INT PRIMARY kEY NOT NULL, test_class TEXT, test_id CHAR(10))";
cur.execute(sql_stat)
#插入表
sql_stat = "insert into test_class_id(id, test_class, test_id) values (1, 'a', '3')"
cur.execute(sql_stat) sql_stat = "insert into test_class_id(id, test_class, test_id) values (2, 'a', '3')"
cur.execute(sql_stat)
#更改字段值
sql_stat = "update test_class_id set test_class='b' where id=1"
cur.execute(sql_stat) db.commit() if __name__ == "__main__":
user = '****'
pwd = '****'
ip = '***'
port = ''
dbname = '****'
main(user, pwd, ip, port, dbname)
print "Done~~"

结果

:这里有多次提交execute  最后一次提交commit,如果没有最后的一次commit,你们前面的提交也是不执行的。

示例2:批量表操作

 -*- coding: utf-8 -*-
import psycopg2 class_ids = []
class_ids.append({"test_id": 1, "test_class":"A", "test_id":""})
class_ids.append({"test_id": 2, "test_class":"A", "test_id":""})
class_ids.append({"test_id": 3, "test_class":"B", "test_id":""}) def main(user,pwd,ip,port,dbname):
connection = "dbname=%s user=%s password=%s host=%s port=%s" % (dbname, user,pwd, ip, port)
db = psycopg2.connect(connection)
cur = db.cursor() #sql_del = "delete from cdb_chk_group"
#cur.execute(sql_del)
#批量操作
sql_stat = 'insert into test_class_id(id, test_class, test_id) values (%(test_id)s, %(test_class)s,%(test_id)s)'
cur.executemany(sql_stat, class_ids) db.commit() if __name__ == "__main__":
user = '****'
pwd = '****'
ip = '****'
port = '5432'
dbname = '****'
main(user, pwd, ip, port, dbname)
print "Done~~"

验证

用法补充

1. 查询数据,并输出结果

查询一条

>>> cur.execute("select * from test;")
>>> cur.fetchone()
(, , "abc'def")

查询所有条

>>> cur.execute("select * from test;")
>>> cur.fetchall()
[(1, 100, "abc'def"),(2, 100, "abc'def")]

psycopg2的更多相关文章

  1. 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 ...

  2. Python:使用psycopg2模块操作PostgreSQL

    安装psycopg2模块: 怎么验证是否已经安装过psycopy2? 编写上面代码,运行看是否抛出缺少psycopg2模块. 安装方法1: 1)使用psycopg2-2.4.2.win-amd64-p ...

  3. python安装psycopg2

    vim ~/.bash_profile export PATH=/Applications/Postgres.app/Contents/Versions/9.4/bin/:$PATH pip inst ...

  4. psycopg2.pool – Connections pooling / psycopg2.pool – 连接池 / postgresql 连接池

    创建新的PostgreSQL连接可以是一个昂贵的操作.这个模块提供了一些纯Python类直接在客户端应用程序实现简单的连接池.      class psycopg2.pool.AbstractCon ...

  5. psycopg2关于undefined symbol: lo_truncate64解决方法

    今天,在centos6.5下安装psycopg2,利用Python连接PostgreSQL数据库的时候,出现了一个undefined symbol: lo_truncate6的错误: django.c ...

  6. psycopg2接口的基本用法

    转载自:http://zhiwei.li/text/2012/02/05/psycopg2接口的基本用法/ 与其他实现了DB API 2.0协议的其他数据库用户基本一致. import psycopg ...

  7. python2 使用pip安装psycopg2出现错误:Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-mvzdNj/psycopg2/

    公司业务需求,开发语言python2,需要使用数据库:postgresql,需要安装模块psycopg2这个模块, 使用pip install psycopg2 报错: Command "p ...

  8. pip install psycopg2出现python setup.py egg_info failed with error code 1 in /tmp/pip-build-YtLeN3/psycopg2错误处理

    折腾了一上午flask部署,到最后访问域名还是出现Application Error错误提示.估计是程序还有问题,想着直接clone书中作者的代码先试试能不能部署成功.结果在执行pip install ...

  9. psycopg2+postgis+pgAdmin4

    基于docker的postgres 部署见这篇 https://www.cnblogs.com/xuanmanstein/p/7742647.html 连接数据库 import psycopg2cla ...

随机推荐

  1. mongodb复制集配置

    #more /opt/mongodb3.0/mongodb_im_conf_47020/mongodb3.0_im_47020.cnf dbpath = /opt/mongodb3.0/mongodb ...

  2. x86_64编译JPEG遇到Invalid configuration `x86_64-unknown-linux-gnu'

    把 /usr/share/libtool/config/config.guess 覆盖到相关软件自带的config.guess   把 /usr/share/libtool/config/config ...

  3. Apache Spark源码走读之2 -- Job的提交与运行

    欢迎转载,转载请注明出处,徽沪一郎. 概要 本文以wordCount为例,详细说明spark创建和运行job的过程,重点是在进程及线程的创建. 实验环境搭建 在进行后续操作前,确保下列条件已满足. 下 ...

  4. 算法与数据结构题目的 PHP 实现:栈和队列 设计一个有 getMin 功能的栈

    刚入手了一本<程序员代码面试指南>,书中题目的代码都是 Java 实现的,琢磨着把这些代码用 PHP 敲一遍,加深印象. 题目:设计一个有 getMin 功能的栈 —— 实现一个特殊的栈, ...

  5. 实现ScrollView中包含ListView,动态设置ListView的高度

    ScrollView 中包含 ListView 的问题 : ScrollView和ListView会冲突,会导致ListView显示不全 <?xml version="1.0" ...

  6. Error when loading the SDK:

    android环境搭建:http://www.cnblogs.com/xdp-gacl/p/4322165.html eclipse启动,报了错.  解决: 从安装的android-sdk目录下的to ...

  7. Android 通过网页打开自己的APP(scheme)

    Android 通过网页打开自己的APP(scheme) 分类: android2014-07-09 17:35 8565人阅读 评论(2) 收藏 举报 通过用手机的浏览器(内置,第三方都可)访问一个 ...

  8. Yii源码阅读笔记(九)

    Behvaior类,Behavior类是所有事件类的基类: namespace yii\base; /** * Behavior is the base class for all behavior ...

  9. 【java】由equals和==的区别引出的常量池知识

    equals和==的区别,百度查到的结果大都是:equals比较的是值,==比较的是引用地址. String str1 = "abc"; String str2 = "a ...

  10. global.asax、global.asax.compiled、PrecompiledApp.config三者关系

    global.asax用WebDeploy发布后,会在bin下面产生一个global.asax.compiled,同时根目录下产生PrecompiledApp.config. 正常情况下global. ...