SQLAlchemy Core - 連線資料庫



在上一章中,我們討論了 SQLAlchemy 中的表示式語言。現在讓我們繼續討論連線資料庫所涉及的步驟。

Engine 類將連線池和方言組合在一起,以提供資料庫連線和行為的來源。Engine 類的物件使用create_engine()函式例項化。

create_engine() 函式將資料庫作為引數。無需在任何地方定義資料庫。標準呼叫表單必須將 URL 作為第一個位置引數傳送,通常是一個字串,指示資料庫方言和連線引數。使用下面給出的程式碼,我們可以建立一個數據庫。

>>> from sqlalchemy import create_engine
>>> engine = create_engine('sqlite:///college.db', echo = True)

對於MySQL 資料庫,使用以下命令:

engine = create_engine("mysql://user:pwd@localhost/college",echo = True)

為了明確指定用於連線的DB-APIURL 字串採用以下形式:

dialect[+driver]://user:password@host/dbname

例如,如果您使用PyMySQL 驅動程式與 MySQL,請使用以下命令:

mysql+pymysql://<username>:<password>@<host>/<dbname>

echo 標誌是設定 SQLAlchemy 日誌記錄的快捷方式,這是透過 Python 的標準日誌記錄模組完成的。在後續章節中,我們將學習所有生成的 SQL。要隱藏詳細輸出,請將 echo 屬性設定為None。create_engine() 函式的其他引數可能是特定於方言的。

create_engine() 函式返回一個Engine 物件。Engine 類的一些重要方法是:

序號 方法和描述
1

connect()

返回連線物件

2

execute()

執行 SQL 語句構造

3

begin()

返回一個上下文管理器,提供一個已建立事務的連線。操作成功後,提交事務,否則回滾事務

4

dispose()

釋放 Engine 使用的連線池

5

driver()

Engine 使用的方言的驅動程式名稱

6

table_names()

返回資料庫中所有表名的列表

7

transaction()

在事務邊界內執行給定函式

廣告

© . All rights reserved.