首頁 >後端開發 >Python教學 >Python連接資料庫學習之DB-API詳解

Python連接資料庫學習之DB-API詳解

高洛峰
高洛峰原創
2017-02-13 16:21:511960瀏覽

在沒有 Python DB-API 之前,各資料庫之間的應用介面非常混亂,實作各不相同。如果項目需要更換資料庫時,則需要做大量的修改,非常不便。 Python DB-API 的出現就是為了解決這樣的問題。本文主要介紹了Python連接資料庫之DB-API的相關資料,需要的朋友可以參考。

前言

大家都知道在Python中如果要連接資料庫,不管是MySQL、SQL Server、PostgreSQL或是SQLite,使用時都是採用遊標的方式,所以就不得不學習Python DB- API。

Python所有的資料庫介面程式都在一定程度上遵守 Python DB-API 規範。 DB-API定義了一系列必須的物件和資料庫存取方式,以便為各種底層資料庫系統和多種多樣的資料庫介面程式提供一致的存取介面。由於DB-API 為不同的資料庫提供了一致的存取接口, 在不同的資料庫之間移植代碼成為一件輕鬆的事情。

Python連接資料庫流程:

Python連接資料庫學習之DB-API詳解

使用connectconnection連接符合標準的模組都會實作 connect 方法。

connect 函數的參數如下所示:


user Username

  • password Password

  • host
  • dsn Data source name

  • 資料庫連線參數可以以DSN 字串的形式提供,範例:connect(dsn='host:MYDB',user='root',password=' ')
  • 當然,不同的資料庫介面程式可能有些差異,並非都是嚴格按照規範實現,例如MySQLdb則使用db 參數而不是規範推薦的database 參數來表示要存取的資料庫:
  • MySQLdb連接時可用參數

host: 資料庫主機名稱.用本地主機



user: 資料庫登陸名稱.預設是目前使用者


passwd: 資料庫登陸名稱.預設是目前使用者

  • db: 要使用的資料庫預設值port: MySQL服務使用的TCP端口.默認是3306

  • charset: 數據庫編碼

  • psycopg2連接時可用參數:
  • dbname – 數據庫名稱(dsn連接模式)

  • database – 資料庫名稱

user – 使用者名稱


password – 密碼

  • host – 伺服器位址(如果不提供預設連接到Unix S5,34537(

  • 其中connect物件又有以下方法:
  • close():關閉此connect物件, 關閉後無法再進行操作,除非再次建立連線

  • ,如果是支援事務的資料庫執行增刪改後沒有commit則資料庫預設回滾
  • rollback():取消目前交易

  • cursor():建立遊標物件

cursor():建立遊標物件
遊標物件

  • cursor遊標物件又有以下屬性與方法:
  • 常用方法:
  • close():


close():下一行fetchmany([size = cursor.arraysize]):得到結果集的下幾行


fetchall():得到結果集中剩下的所有行

fetchall():得到結果集中剩下的所有行,arg ]):執行一個資料庫查詢或指令

  • excutemany(sql, args):執行多個資料庫查詢或指令

  • 常用屬性:

    con
  • arraysize:使用fetchmany()方法一次取出多少筆記錄,預設為1
  • lastrowid:相當於PHP的last_inset_id()
  • __iter__( ):建立一個可迭代物件(可選)
  • next():取得結果集的下一行(如果支援迭代的話)

nextset():移到下一個結果集(如果支援的話)

    callproc(func[,args]):呼叫一個預存程序
  • setinputsizes(sizes):設定輸入最大值(必須有,但具體實作是可選的)
  • setoutputsizes(sizes[,col]):設定大列fetch 的最大緩衝區大小

其他屬性:
):(name, type_code, display_size, internal_size, precision, scale, null_ok)只有name 和type_cose 是必需的

  • rowcount:最近一次execute(essa) 創建或影響的標行數

    rowcount:最近一次execute() 創建或影響的標行數
  • 資料庫傳回的資訊元組(選用)

  • rownumber:目前結果集中遊標所在行的索引(起始行號為0)

  • DB-API只會中的錯誤定義

錯誤類別的層次關係:

StandardError
|__Warning
|__Error
|__InterfaceError
|__DatabaseError
|__DataError
|__OperationalError
|__IntegrityError
|__InternalError
|__ProgrammingError
|__NotSupportedError

資料庫操作範例

程式碼詳解相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn