中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python數據庫API是什么

發布時間:2020-09-24 10:07:01 來源:億速云 閱讀:297 作者:Leah 欄目:編程語言

這篇文章運用簡單易懂的例子給大家介紹Python數據庫API是什么,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

雖然 Python 需要為操作不同的數據庫使用不同的模塊,但不同的數據庫模塊并非沒有規律可循,因為它們基本都遵守 Python 制訂的 DB API 協議,目前該協議的最新版本是 2.0,因此這些數據庫模塊有很多操作其實都是相同的。下面先介紹不同數據庫模塊之間的通用內容。

全局變量

Python 推薦支持 DB API 2.0 的數據庫模塊都應該提供如下 3 個全局變量:

apilevel:該全局變量顯示數據庫模塊的 API 版本號。對于支持 DB API 2.0 版本的數據庫模塊來說,該變量值通常就是 2.0。如果這個變量不存在,則可能該數據庫模塊暫時不支持 DB API 2.0。讀者應該考慮選擇使用支持該數據庫的其他數據庫模塊。

threadsafety:該全局變量指定數據庫模塊的線程安全等級,該等級值為 0~3 ,其中 3 代表該模塊完全是線程安全的;1 表示該模塊具有部分線程安全性,線程可以共享該模塊,但不能共享連接;0 則表示線程完全不能共享該模塊。

paramstyle:該全局變量指定當 SQL 語句需要參數時,可以使用哪種風格的參數。該變量可能返回如下變量值:

format:表示在 SQL 語句中使用 Python 標準的格式化字符串代表參數。例如,在程序中需要參數的地方使用 %s,接下來程序即可為這些參數指定參數值。

pyformat:表示在 SQL 語句中使用擴展的格式代碼代表參數。比如使用 %(name),這樣即可使用包含 key 為 name 的字典為該參數指定參數值。

qmark:表示在 SQL 語句中使用問號(?)代表參數。在 SQL 語句中有幾個參數,全部用問號代替。

numeric:表示在 SQL 語句中使用數字占位符(:N)代表參數。例如:1 代表一個參數,:2 也表示一個參數,這些數字相當于參數名,因此它們不一定需要連續。

named:表示在 SQL 語句中使用命名占位符(:name)代表參數。例如 :name 代表一個參數,:age 也表示一個參數。

通過查閱這些全局變量,即可大致了解該數據庫 API 模塊的對外的編程風格,至于該模塊內部的實現細節,完全由該模塊實現者負責提供,通常不需要開發者關心。

數據庫 API 的核心類

遵守 DB API 2.0 協議的數據庫模塊通常會提供一個 connect() 函數,該函數用于連接數據庫,并返回數據庫連接對象。

數據庫連接對象通常會具有如下方法和屬性:

cursor(factory=Cursor):打開游標。

commit():提交事務。

rollback():回滾事務。

close():關閉數據庫連接。

isolation_level:返回或設置數據庫連接中事務的隔離級別。

in_transaction:判斷當前是否處于事務中。

上面第一個方法可以返回一個游標對象,游標對象是 Python DB API 的核心對象,該對象主要用于執行各種 SQL 語句,包括 DDL、DML、select 查詢語句等。使用游標執行不同的 SQL 語句返回不同的數據。

游標對象通常會具有如下方法和屬性:

execute(sql[, parameters]):執行 SQL 語句。parameters 參數用于為 SQL 語句中的參數指定值。

executemany(sql, seq_of_parameters):重復執行 SQL 語句。可以通過 seq_of_parameters 序列為 SQL 語句中的參數指定值,該序列有多少個元素,SQL 語句被執行多少次。

executescript(sql_script):這不是 DB API 2.0 的標準方法。該方法可以直接執行包含多條 SQL 語句的 SQL 腳本。

fetchone():獲取查詢結果集的下一行。如果沒有下一行,則返回 None。

fetchmany(size=cursor.arraysize):返回查詢結果集的下 N 行組成的列表。如果沒有更多的數據行,則返回空列表。

fetchall():返回查詢結果集的全部行組成的列表。

close():關閉游標。

rowcount:該只讀屬性返回受 SQL 語句影響的行數。對于 executemany() 方法,該方法所修改的記錄條數也可通過該屬性獲取。

lastrowid:該只讀屬性可獲取最后修改行的 rowid。

arraysize:用于設置或獲取 fetchmany() 默認獲取的記錄條數,該屬性默認為 1。有些數據庫模塊沒有該屬性。

description:該只讀屬性可獲取最后一次查詢返回的所有列的信息。

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 操作數據庫的基本流程。

Python數據庫API是什么

關于Python數據庫API是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

克拉玛依市| 湖南省| 九寨沟县| 金坛市| 鄂托克旗| 万全县| 宜宾市| 凤阳县| 响水县| 凤冈县| 南开区| 黎川县| 罗定市| 礼泉县| 深泽县| 武夷山市| 改则县| 凉山| 洛浦县| 阿鲁科尔沁旗| 江门市| 盐津县| 呼图壁县| 克什克腾旗| 沾化县| 宜都市| 海伦市| 永和县| 台东市| 大邑县| 资兴市| 宁波市| 宽城| 绥棱县| 北辰区| 乐昌市| 祁门县| 渭南市| 昌黎县| 恩平市| 弥勒县|