Python模塊psycopg2連接postgresql的實(shí)現(xiàn)
1. 基礎(chǔ)語法
語法
psycopg2.connect( dsn #指定連接參數(shù)??梢允褂脜?shù)形式或 DSN 形式指定。 host #指定連接數(shù)據(jù)庫的主機(jī)名。 dbname #指定數(shù)據(jù)庫名。 user #指定連接數(shù)據(jù)庫使用的用戶名。 password #指定連接數(shù)據(jù)庫使用的密碼。 port #指定連接數(shù)據(jù)庫的端口號(hào)。 connection_factory #指定創(chuàng)建連接對(duì)象的工廠類。 cursor_factory #指定創(chuàng)建游標(biāo)對(duì)象的工廠類。 async_ #指定是否異步連接(默認(rèn)False)。 sslmode #指定 SSL 模式。 sslrootcert #指定證書文件名。 sslkey #指定私鑰文件名。 sslcert #指定公鑰文件名。 )
2. 基礎(chǔ)用法
import psycopg2 # 連接數(shù)據(jù)庫 conn_pg = psycopg2.connect("host=localhost dbname=test user=postgres password=123456 port=5432") # 創(chuàng)建一個(gè)游標(biāo) cur = conn_pg.cursor() # 執(zhí)行SQL語句 cur.execute("select * from t1 limit 10;") # 獲取返回的結(jié)果 rows = cur.fetchall() # 遍歷每行結(jié)果(也可以直接打印,輸出格式為列表) for i in rows: print(i) # 關(guān)閉游標(biāo) cur.close() # 關(guān)閉連接 conn_pg.close()
結(jié)果如下
3. 多條SQL
多條SQL語句直接放入 execute 方法中即可
import psycopg2 # 編寫要執(zhí)行的SQL語句 sql_statements = """ SELECT * FROM t1 WHERE c1 = 1; UPDATE t1 SET c2 = 'yt' WHERE c1 = 1; SELECT * FROM t1 WHERE c1 = 1; """ # 連接數(shù)據(jù)庫 with psycopg2.connect("host=localhost dbname=test user=postgres password=123456 port=5432") as conn_pg: with conn_pg.cursor() as cur: # 執(zhí)行SQL語句 cur.execute(sql_statements) # 獲取返回的結(jié)果 rows = cur.fetchall() # 輸出結(jié)果 print(rows) # 提交事務(wù) conn_pg.commit()
這種方法只返回最后一條SQL語句的結(jié)果,如果需要全部返回,使用遍歷的方法逐條發(fā)送即可
4. 事務(wù)SQL
#!/usr/bin/python import psycopg2 # 連接數(shù)據(jù)庫 with psycopg2.connect("host=localhost dbname=test user=postgres password=123456 port=5432") as conn_pg: with conn_pg.cursor() as cur: try: cur.execute("BEGIN") #開始事務(wù) cur.execute("INSERT INTO t1 VALUES (1, 'abc');") cur.execute("UPDATE t1 SET c2 = 'def' WHERE c1 = 1;") conn_pg.commit() #提交事務(wù) except: conn.rollback() #回滾事務(wù)
到此這篇關(guān)于Python模塊psycopg2連接postgresql的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Python連接postgresql內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于python之字典的嵌套,遞歸調(diào)用方法
今天小編就為大家分享一篇關(guān)于python之字典的嵌套,遞歸調(diào)用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-01-01python將多個(gè)py文件和其他文件打包為exe可執(zhí)行文件
這篇文章主要介紹了python將多個(gè)py文件和其他文件打包為exe可執(zhí)行文件,通過準(zhǔn)備要打包的工程文件展開詳情,需要的小伙伴可以參考一下2022-05-05詳解Numpy中的數(shù)組拼接、合并操作(concatenate, append, stack, hstack, vstac
這篇文章主要介紹了詳解Numpy中的數(shù)組拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05OpenCV特征匹配和單應(yīng)性矩陣查找對(duì)象詳解
這篇文章主要為大家介紹了OpenCV特征匹配和單應(yīng)性矩陣查找對(duì)象詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04Django之富文本(獲取內(nèi)容,設(shè)置內(nèi)容方式)
這篇文章主要介紹了Django之富文本(獲取內(nèi)容,設(shè)置內(nèi)容方式),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-05-05Python辦公自動(dòng)化之CSV文件的運(yùn)用和管理
Python辦公?動(dòng)化是利?Python編程語?來創(chuàng)建腳本和程序,以簡化、加速和?動(dòng)化?常辦公任務(wù)和?作流程的過程,本文主要來介紹一下如何利用Python進(jìn)行CSV文件的運(yùn)用和管理,感興趣的可以了解下2023-12-12