Postgresql 有了 psycopg2 操作測試更方便(一)
- 2020 年 3 月 10 日
- 筆記

隨着對DB們的要求越來越高,測試,查找問題,監控,做一些比較複雜的事情,沒有程序來加入,模擬一些比較複雜的應用環境,則事情會比較難搞。並且每種數據庫通過python操作都依賴於引入的與此數據庫有關的PYTHON 包。 弄得現在人人都會python 但實際上,在語法以及基礎python知識以外,每個 api 的使用則是你用好這個通用工具,展現他的能力的基礎。所以精通每個數據庫的API for python 就是你是否能用好 python來驅動數據庫的基礎。
Python 與 PostgreSql 之間的操作連接就是 psycopy2 ,今天來說說怎麼通過psycopy2 來和postgresql 進行溝通。
首先就需要進行連接,下面的操作基於python3 以及pycharm

請在pycharm中安裝 psycopg2 包,版本是2.8.4

上面是一段標準的連接代碼
其中要與postgresql進行連接,必須使用connect()方法來進行
,然後創建一個cursor 游標來執行你要執行的pgsql。
一個連接必要的幾個步驟(別的數據庫也差不多)
1 建立連接
2 判斷連接是否成功,捕捉錯誤,如果不成功就報錯(有的數據庫不這樣,回來說說這個倒霉的數據庫+ 他的DB API)
3 不在使用,關閉這個連接

接入 psycopg2 的 error 是為了在操作過程中如果有錯誤可以通過這個模塊來將handle 錯誤,讓程序的完善一些。
connection.cursor()我們可以創建一個cursor對象,它允許我們通過Python源代碼執行PostgreSQL命令。 我們可以從一個連接對象創建任意多的游標。同一連接創建的游標不是孤立的,游標對數據庫所做的任何更改都可以立即被其他游標看到。
下面是一些常用的操作方法
cursor.execute() 執行execute 方法執行數據庫的操作。
對於查詢結果進行展示的不同方法
fetchone()
fetchmany()
fetchall()
在了解了上面的一些事情後,下面就開始對數據庫進行簡單的一些操作
如何在創建一個表,並且判斷這個表是否存在,如果存在就報錯,否則就創建
使用到了
psycopg2.DatabaseError
下面代碼創建測試表,一次性創建 500張

基本的操作會了,先我們需要一個測試
1 建立500張表
2 在每張表中開始插入數據,並且不能重複
3 在插入數據的同時,進行UPDATE 操作
下面就是這段代碼



其中在操作DML 語句中

值得說一下的是其中的帶參在語句中使用 %s 帶參,在執行的時候,按照%s的順序帶入實際的值,或者變量。 由於公眾號中的自動將貼入的代碼截斷,並且格式也有變化,以上代碼可以在下面的,QQ群的文件中,如有需要可以自取。