国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python中用psycopg2模塊操作PostgreSQL方法

2020-01-04 16:14:44
字體:
供稿:網(wǎng)友

其實在Python中可以用來連接PostgreSQL的模塊很多,這里比較推薦psycopg2。psycopg2安裝起來非常的簡單(pip install psycopg2),這里主要重點(diǎn)介紹下如何使用。

安裝psycopg2模塊:

怎么驗證是否已經(jīng)安裝過psycopy2?

Python,psycopg2,PostgreSQL

編寫上面代碼,運(yùn)行看是否拋出缺少psycopg2模塊。

Python,psycopg2,PostgreSQL

安裝方法1:

1)使用psycopg2-2.4.2.win-amd64-py2.7-pg9.0.4-release.exe安裝,下載地址:http://vdisk.weibo.com/s/Cd8pPaw56Ozys

直接運(yùn)行exe,不出錯誤,運(yùn)行上邊代碼驗證代碼無錯誤,基本算是安裝完成了。

2)怎么卸載?

2.1)找到安裝目錄:C:/Python27,發(fā)現(xiàn)下邊包含文件:Removepsycopg2.exe,運(yùn)行,來刪除;

2.2)如果運(yùn)行失敗的話,進(jìn)入目錄:C:/Python27/Lib/site-packages下,找到psycopg2文件夾和psycopg2-2.4.2-py2.7.egg-info文件,右鍵刪除。

2.3)運(yùn)行上邊的代碼,確認(rèn)是否刪除成功。

安裝方法2:

使用.whl安裝,下載地址:https://pypi.python.org/pypi/psycopg2/

Python,psycopg2,PostgreSQL

下載文件:psycopg2-2.6.2-cp27-none-win_amd64.whl

我這里把psycopg2-2.6.2-cp27-none-win_amd64.whl拷貝到安裝目錄下Scripts文件夾中。

cmd中運(yùn)行代碼:pip install C:/Python27/Scripts/psycopg2-2.6.2-cp27-none-win_amd64.whl

Python,psycopg2,PostgreSQL

運(yùn)行上邊的代碼,確認(rèn)是否刪除成功。

通過psycopg2操作數(shù)據(jù)庫:

使用賬戶postgres,創(chuàng)建測試數(shù)據(jù)庫testdb。

Python,psycopg2,PostgreSQL

參考yiibai.comAPI:

S.N. API & 描述

1 psycopg2.connect(database="testdb", user="postgres", password="cohondob", host="127.0.0.1", port="5432")

這個API打開一個連接到PostgreSQL數(shù)據(jù)庫。如果成功打開數(shù)據(jù)庫時,它返回一個連接對象。

2 connection.cursor()

該程序創(chuàng)建一個光標(biāo)將用于整個數(shù)據(jù)庫使用Python編程。

3 cursor.execute(sql [, optional parameters])

此例程執(zhí)行SQL語句??杀粎?shù)化的SQL語句(即占位符,而不是SQL文字)。 psycopg2的模塊支持占位符用%s標(biāo)志

例如:cursor.execute("insert into people values (%s, %s)", (who, age))

4 curosr.executemany(sql, seq_of_parameters)

該程序執(zhí)行SQL命令對所有參數(shù)序列或序列中的sql映射。

5 curosr.callproc(procname[, parameters])

這個程序執(zhí)行的存儲數(shù)據(jù)庫程序給定的名稱。該程序預(yù)計為每一個參數(shù),參數(shù)的順序必須包含一個條目。

6 cursor.rowcount

這個只讀屬性,它返回數(shù)據(jù)庫中的行的總數(shù)已修改,插入或刪除最后 execute*().

7 connection.commit()

此方法提交當(dāng)前事務(wù)。如果不調(diào)用這個方法,無論做了什么修改,自從上次調(diào)用commit()是不可見的,從其他的數(shù)據(jù)庫連接。

8 connection.rollback()

此方法會回滾任何更改數(shù)據(jù)庫自上次調(diào)用commit()方法。

9 connection.close()

此方法關(guān)閉數(shù)據(jù)庫連接。請注意,這并不自動調(diào)用commit()。如果你只是關(guān)閉數(shù)據(jù)庫連接而不調(diào)用commit()方法首先,那么所有更改將會丟失!

10 cursor.fetchone()

這種方法提取的查詢結(jié)果集的下一行,返回一個序列,或者無當(dāng)沒有更多的數(shù)據(jù)是可用的。

11 cursor.fetchmany([size=cursor.arraysize])

這個例程中取出下一個組的查詢結(jié)果的行數(shù),返回一個列表。當(dāng)沒有找到記錄,返回空列表。該方法試圖獲取盡可能多的行所顯示的大小參數(shù)。

12 cursor.fetchall()

這個例程獲取所有查詢結(jié)果(剩余)行,返回一個列表??招袝r則返回空列表。

打開數(shù)據(jù)庫連接:

import osimport sysimport psycopg2def connectPostgreSQL():conn = psycopg2.connect(database="testdb", user="postgres", password="new.1234", host="127.0.0.1", port="5432")print 'connect successful!'if __name__=='__main__':connectPostgreSQL()

創(chuàng)建表操作:

import osimport sysimport psycopg2def connectPostgreSQL():conn = psycopg2.connect(database="testdb", user="postgres", password="new.1234", host="127.0.0.1", port="5432")print 'connect successful!'cursor=conn.cursor()cursor.execute('''create table public.member(id integer not null primary key,name varchar(32) not null,password varchar(32) not null,singal varchar(128))''')conn.commit()conn.close()print 'table public.member is created!'if __name__=='__main__':connectPostgreSQL()

Insert 操作:

import os import sys import psycopg2  def connectPostgreSQL():   conn = psycopg2.connect(database="testdb", user="postgres", password="new.1234", host="127.0.0.1", port="5432")   print 'connect successful!'   cursor=conn.cursor()   cursor.execute('''create table public.member( id integer not null primary key, name varchar(32) not null, password varchar(32) not null, singal varchar(128) )''')   conn.commit()   conn.close()   print 'table public.member is created!' def insertOperate():   conn = psycopg2.connect(database="testdb", user="postgres", password="new.1234", host="127.0.0.1", port="5432")   cursor=conn.cursor()   cursor.execute("insert into public.member(id,name,password,singal)/ values(1,'member0','password0','signal0')")   cursor.execute("insert into public.member(id,name,password,singal)/ values(2,'member1','password1','signal1')")   cursor.execute("insert into public.member(id,name,password,singal)/ values(3,'member2','password2','signal2')")   cursor.execute("insert into public.member(id,name,password,singal)/ values(4,'member3','password3','signal3')")   conn.commit()   conn.close()      print 'insert records into public.memmber successfully'    if __name__=='__main__':   #connectPostgreSQL()insertOperate()

Select 操作:

import os import sys import psycopg2  def connectPostgreSQL():   conn = psycopg2.connect(database="testdb", user="postgres", password="new.1234", host="127.0.0.1", port="5432")   print 'connect successful!'   cursor=conn.cursor()   cursor.execute('''create table public.member( id integer not null primary key, name varchar(32) not null, password varchar(32) not null, singal varchar(128) )''')   conn.commit()   conn.close()   print 'table public.member is created!'  def insertOperate():   conn = psycopg2.connect(database="testdb", user="postgres", password="new.1234", host="127.0.0.1", port="5432")   cursor=conn.cursor()   cursor.execute("insert into public.member(id,name,password,singal)/ values(1,'member0','password0','signal0')")   cursor.execute("insert into public.member(id,name,password,singal)/ values(2,'member1','password1','signal1')")   cursor.execute("insert into public.member(id,name,password,singal)/ values(3,'member2','password2','signal2')")   cursor.execute("insert into public.member(id,name,password,singal)/ values(4,'member3','password3','signal3')")   conn.commit()   conn.close()      print 'insert records into public.memmber successfully'  def selectOperate():   conn = psycopg2.connect(database="testdb", user="postgres", password="new.1234", host="127.0.0.1", port="5432")   cursor=conn.cursor()   cursor.execute("select id,name,password,singal from public.member where id>2")   rows=cursor.fetchall()   for row in rows:     print 'id=',row[0], ',name=',row[1],',pwd=',row[2],',singal=',row[3],'/n'   conn.close()    if __name__=='__main__':   #connectPostgreSQL()   #insertOperate()   selectOperate()

結(jié)果:

Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:24:40) [MSC v.1500 64 bit (AMD64)] on win32Type "copyright", "credits" or "license()" for more information.>>> ========== RESTART: C:/Users/Administrator/Desktop/mutilpleTest.py ==========id= 3 ,name= member2 ,pwd= password2 ,singal= signal2 id= 4 ,name= member3 ,pwd= password3 ,singal= signal3 >>> 

update操作:

 import os import sys import psycopg2  def connectPostgreSQL():   conn = psycopg2.connect(database="testdb", user="postgres", password="new.1234", host="127.0.0.1", port="5432")   print 'connect successful!'   cursor=conn.cursor()   cursor.execute('''create table public.member( id integer not null primary key, name varchar(32) not null, password varchar(32) not null, singal varchar(128) )''')   conn.commit()   conn.close()   print 'table public.member is created!'  def insertOperate():   conn = psycopg2.connect(database="testdb", user="postgres", password="new.1234", host="127.0.0.1", port="5432")   cursor=conn.cursor()   cursor.execute("insert into public.member(id,name,password,singal)/ values(1,'member0','password0','signal0')")   cursor.execute("insert into public.member(id,name,password,singal)/ values(2,'member1','password1','signal1')")   cursor.execute("insert into public.member(id,name,password,singal)/ values(3,'member2','password2','signal2')")   cursor.execute("insert into public.member(id,name,password,singal)/ values(4,'member3','password3','signal3')")   conn.commit()   conn.close()      print 'insert records into public.memmber successfully'  def selectOperate():   conn = psycopg2.connect(database="testdb", user="postgres", password="new.1234", host="127.0.0.1", port="5432")   cursor=conn.cursor()   cursor.execute("select id,name,password,singal from public.member where id>2")   rows=cursor.fetchall()   for row in rows:     print 'id=',row[0], ',name=',row[1],',pwd=',row[2],',singal=',row[3],'/n'   conn.close()  def updateOperate():   conn = psycopg2.connect(database="testdb", user="postgres", password="new.1234", host="127.0.0.1", port="5432")   cursor=conn.cursor()   cursor.execute("update public.member set name='update ...' where id=2")   conn.commit()   print "Total number of rows updated :", cursor.rowcount    cursor.execute("select id,name,password,singal from public.member")   rows=cursor.fetchall()   for row in rows:     print 'id=',row[0], ',name=',row[1],',pwd=',row[2],',singal=',row[3],'/n'   conn.close()    if __name__=='__main__':   #connectPostgreSQL()   #insertOperate()   #selectOperate()   updateOperate()

結(jié)果:

Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:24:40) [MSC v.1500 64 bit (AMD64)] on win32Type "copyright", "credits" or "license()" for more information.>>> ========== RESTART: C:/Users/Administrator/Desktop/mutilpleTest.py ==========Total number of rows updated : 1id= 1 ,name= member0 ,pwd= password0 ,singal= signal0 id= 3 ,name= member2 ,pwd= password2 ,singal= signal2 id= 4 ,name= member3 ,pwd= password3 ,singal= signal3 id= 2 ,name= update ... ,pwd= password1 ,singal= signal1 >>> 

Delete操作:

 import os import sys import psycopg2  def connectPostgreSQL():   conn = psycopg2.connect(database="testdb", user="postgres", password="new.1234", host="127.0.0.1", port="5432")   print 'connect successful!'   cursor=conn.cursor()   cursor.execute('''create table public.member( id integer not null primary key, name varchar(32) not null, password varchar(32) not null, singal varchar(128) )''')   conn.commit()   conn.close()   print 'table public.member is created!'  def insertOperate():   conn = psycopg2.connect(database="testdb", user="postgres", password="new.1234", host="127.0.0.1", port="5432")   cursor=conn.cursor()   cursor.execute("insert into public.member(id,name,password,singal)/ values(1,'member0','password0','signal0')")   cursor.execute("insert into public.member(id,name,password,singal)/ values(2,'member1','password1','signal1')")   cursor.execute("insert into public.member(id,name,password,singal)/ values(3,'member2','password2','signal2')")   cursor.execute("insert into public.member(id,name,password,singal)/ values(4,'member3','password3','signal3')")   conn.commit()   conn.close()      print 'insert records into public.memmber successfully'  def selectOperate():   conn = psycopg2.connect(database="testdb", user="postgres", password="new.1234", host="127.0.0.1", port="5432")   cursor=conn.cursor()   cursor.execute("select id,name,password,singal from public.member where id>2")   rows=cursor.fetchall()   for row in rows:     print 'id=',row[0], ',name=',row[1],',pwd=',row[2],',singal=',row[3],'/n'   conn.close()  def updateOperate():   conn = psycopg2.connect(database="testdb", user="postgres", password="new.1234", host="127.0.0.1", port="5432")   cursor=conn.cursor()   cursor.execute("update public.member set name='update ...' where id=2")   conn.commit()   print "Total number of rows updated :", cursor.rowcount    cursor.execute("select id,name,password,singal from public.member")   rows=cursor.fetchall()   for row in rows:     print 'id=',row[0], ',name=',row[1],',pwd=',row[2],',singal=',row[3],'/n'   conn.close()  def deleteOperate():   conn = psycopg2.connect(database="testdb", user="postgres", password="new.1234", host="127.0.0.1", port="5432")     cursor=conn.cursor()    cursor.execute("select id,name,password,singal from public.member")   rows=cursor.fetchall()   for row in rows:     print 'id=',row[0], ',name=',row[1],',pwd=',row[2],',singal=',row[3],'/n'    print 'begin delete'   cursor.execute("delete from public.member where id=2")   conn.commit()     print 'end delete'   print "Total number of rows deleted :", cursor.rowcount      cursor.execute("select id,name,password,singal from public.member")   rows=cursor.fetchall()   for row in rows:     print 'id=',row[0], ',name=',row[1],',pwd=',row[2],',singal=',row[3],'/n'   conn.close()    if __name__=='__main__':   #connectPostgreSQL()   #insertOperate()   #selectOperate()   #updateOperate()   deleteOperate()

結(jié)果:

Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:24:40) [MSC v.1500 64 bit (AMD64)] on win32Type "copyright", "credits" or "license()" for more information.>>> ========== RESTART: C:/Users/Administrator/Desktop/mutilpleTest.py ==========id= 1 ,name= member0 ,pwd= password0 ,singal= signal0 id= 3 ,name= member2 ,pwd= password2 ,singal= signal2 id= 4 ,name= member3 ,pwd= password3 ,singal= signal3 id= 2 ,name= update ... ,pwd= password1 ,singal= signal1 begin deleteend deleteTotal number of rows deleted : 1id= 1 ,name= member0 ,pwd= password0 ,singal= signal0 id= 3 ,name= member2 ,pwd= password2 ,singal= signal2 id= 4 ,name= member3 ,pwd= password3 ,singal= signal3 >>> 

Python,psycopg2,PostgreSQL

 

注:相關(guān)教程知識閱讀請移步到python教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 新宁县| 遂溪县| 额尔古纳市| 固安县| 马鞍山市| 方山县| 绥宁县| 泰和县| 红原县| 象州县| 松滋市| 望都县| 广州市| 蓝田县| 昭平县| 丰镇市| 浦县| 长海县| 湖北省| 博客| 塔河县| 泰和县| 句容市| 福建省| 青浦区| 洪湖市| 肇源县| 五寨县| 昌图县| 鲁甸县| 南乐县| 芮城县| 纳雍县| 宿松县| 科技| 高碑店市| 扎兰屯市| 科技| 林芝县| 海丰县| 石台县|