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ù)庫的端口號。
connection_factory #指定創(chuàng)建連接對象的工廠類。
cursor_factory #指定創(chuàng)建游標(biāo)對象的工廠類。
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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python利用json和pyecharts畫折線圖實(shí)例代碼
這篇文章主要介紹了python利用json和pyecharts畫折線圖實(shí)例,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-12-12
Python實(shí)現(xiàn)爬取騰訊招聘網(wǎng)崗位信息
這篇文章主要介紹了如何用python爬取騰訊招聘網(wǎng)崗位信息保存到表格,并做成簡單可視化。文中的示例代碼對學(xué)習(xí)Python有一定的幫助,感興趣的可以了解一下2022-01-01
Python+wxPython實(shí)現(xiàn)合并多個(gè)文本文件
在?Python?編程中,我們經(jīng)常需有時(shí)候,我們可能需要將多個(gè)文本文件合并成一個(gè)文件,要處理文本文件,本文就來介紹下如何使用?wxPython?模塊編寫一個(gè)簡單的程序,能夠讓用戶選擇多個(gè)文本文件,感興趣的可以了解下2023-08-08
使用Python進(jìn)行QQ批量登錄的實(shí)例代碼
這篇文章主要介紹了使用Python進(jìn)行QQ批量登錄的實(shí)例代碼,代碼簡單易懂非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-06-06
python tools實(shí)現(xiàn)視頻的每一幀提取并保存
這篇文章主要為大家詳細(xì)介紹了python tools實(shí)現(xiàn)視頻的每一幀提取并保存,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05
在Django框架中運(yùn)行Python應(yīng)用全攻略
這篇文章主要介紹了在Django框架中運(yùn)行Python應(yīng)用全攻略,在這之前必須搭建好簡單的視圖和模版,接下來便是本文中所述的核心內(nèi)容應(yīng)用配置,需要的朋友可以參考下2015-07-07

