全局變量
Python建議所有支持DB API 2.0的數據庫模塊都應該提供以下三個全局變量:
Apilevel:這個全局變量顯示數據庫模塊的API版本號。對於支持2.0版DBAPI的數據庫模塊,變量值通常為2.0。如果這個變量不存在,數據庫模塊可能暫時不支持DB API 2.0。讀者應該考慮使用支持該數據庫的其他數據庫模塊。
Threadsafety:該全局變量指定數據庫模塊的線程安全級別,該級別的值為0 ~ 3,其中3表示模塊完全線程安全;1表示模塊有部分線程安全,線程可以* * *享受模塊,但不能* * *享受連接;0表示線程根本無法* * *享受模塊。
Paramstyle:這個全局變量指定當SQL語句需要參數時可以使用哪種類型的參數。此變量可能返回以下變量值:
Format:表示使用Python標準格式的字符串來表示SQL語句中的參數。例如,在程序中需要參數的地方使用%s,然後程序可以為這些參數指定參數值。
Pyformat:表示使用擴展格式代碼來表示SQL語句中的參數。例如,使用%(name),這樣就可以使用帶有鍵名稱的字典來指定該參數的參數值。
Qmark:表示用問號(?)代表參數。SQL語句中有幾個參數,都用問號代替。
Numeric:表示數字占位符(:n)用於表示SQL語句中的參數。例如:1代表壹個參數,而:2也代表壹個參數。這些數字相當於參數名,所以不壹定需要連續。
Named:表示命名占位符(:name)用於表示SQL語句中的參數。比如:name代表壹個參數,而:age也代表壹個參數。
通過查閱這些全局變量,我們可以對數據庫API模塊的外部編程風格有壹個大致的了解。至於模塊的內部實現細節,完全是模塊實現者的責任,通常不需要開發者關心。
數據庫API的核心類
符合DB API 2.0協議的數據庫模塊通常會提供壹個connect()函數,用於連接數據庫並返回數據庫連接對象。
數據庫連接對象通常具有以下方法和屬性:
Cursor(factory=Cursor):打開光標。
Commit():提交事務。
Rollback():回滾事務。
Close():關閉數據庫連接。
Isolation_level:返回或設置數據庫連接中事務的隔離級別。
In_transaction:確定它當前是否在事務中。
上面的第壹個方法可以返回壹個cursor對象,它是Python DB API的核心對象。該對象主要用於執行各種SQL語句,包括DDL、DML、select查詢語句等等。使用遊標執行不同的SQL語句會返回不同的數據。
遊標對象通常具有以下方法和屬性:
Execute(sql[,parameters]):執行sql語句。參數參數用於指定SQL語句中參數的值。
Execute many (SQL,seq _ of _ parameters):重復執行SQL語句。您可以通過seq_of_parameters序列、序列中的元素數量以及SQL語句的執行次數來指定SQL語句中的參數值。
Executescript(sql_script):這不是DB API 2.0的標準方法。該方法可以直接執行包含多個SQL語句的SQL腳本。
Fetchone():獲取查詢結果集的下壹行。如果沒有下壹行,則不返回任何內容。
Fetchmany (size = cursor。arraysize):返回查詢結果集下面n行的列表。如果沒有更多的數據行,則返回壹個空列表。
Fetchall():返回查詢結果集中所有行的列表。
Close():關閉光標。
Rowcount:這個只讀屬性返回受SQL語句影響的行數。對於executemany()方法,該方法修改的記錄數也可以通過該屬性獲得。
Lastrowid:這個只讀屬性可以獲取最後修改的行的rowid。
Arraysize:用於設置或獲取默認情況下fetchmany()提取的記錄數。該屬性默認為1。壹些數據庫模塊沒有此屬性。
描述:此只讀屬性可以獲取最後壹次查詢返回的所有列的信息。
Connection:該只讀屬性返回創建遊標的數據庫連接對象。壹些數據庫模塊沒有此屬性。
綜上所述,Python的DB API 2.0從壹個connect()開始,壹個* * *涉及兩個核心API:數據庫連接和遊標。他們的分工如下:
數據庫連接:用於獲取遊標和控制事務。
遊標:執行各種SQL語句。
掌握了這些API之後,我們就可以大致總結壹下Python DB API 2.0的編程步驟了。
操作數據庫的基本過程
使用Python DB API 2.0操作數據庫的基本流程如下:
調用connect()方法打開數據庫連接,這將返回數據庫連接對象。
通過數據庫連接對象打開遊標。
使用遊標執行SQL語句(包括DDL、DML、select查詢語句等。).如果執行查詢語句,將處理查詢數據。
關閉光標。
關閉數據庫連接。
下圖顯示了使用Python DB API 2.0操作數據庫的基本流程。