使用psycopg2連接postgresql,首先需要安裝python psycopg2依賴包
# 下載 psycopg2 模塊 pip install psycopg2
然后引用psycopg2,調用psycopg2.connect接口,實現postgresql連接,進而查詢或更新postgresql數據。
注意:在插入數據時,需要commit提交。由於總是忘記,所以我是增刪改查都會寫上
import psycopg2 conn = psycopg2.connect(database="tables", user="postgres", password="***", host="127.0.0.1", port="5432") cur = conn.cursor() # 執行sql語句 查詢 cur.execute("SELECT name, years from students") # 獲取所有 rows = cur.fetchall() # 提交 , 關閉數據庫 # 如果只是查詢可以只是 conn .close() # 如果是修改了數據庫就要都寫 conn .commit() cur.close() conn .close()
注意 : 如果在查詢的時候附加了條件,比如只是查詢某天的數據,或者取一條數據(pg可以存儲json格式),那么就要使用 fetchone()[0]
# 獲取的一條數據 row = cur.fetchone()[0]
注意 : 如果在表中的字段這樣 , 那么我們在查詢的時候,比如查詢 2020-01-10 日期的學生數據
CREATE TABLE students ( id serial primary key, # id create_date date not null default current_date, # 創建時間 modified_date timestamp default current_timestamp, # 寫入時間 modified_user varchar default current_user, # 所屬者 data jsonb not null # 存儲學生信息 , 比如 json中放全校學生的名字/年齡/成績等 );
import psycopg2 conn = psycopg2.connect(database="tables", user="postgres", password="***", host="127.0.0.1", port="5432") cur = conn.cursor() date = "2020-01-10" date_param = f'\'{date}\'' # 轉個格式 # 執行sql語句 查詢 cur.execute("SELECT data from students where create_date = {date_param}") # 獲取所有 student = cur.fetchone()[0] # 提交 , 關閉數據庫 # 如果只是查詢可以只是 conn .close() # 如果是修改了數據庫就要都寫 conn .commit() cur.close() conn .close()
