Sqlalchemy-core-connecting-to-database

提供:Dev Guides
移動先:案内検索

SQLAlchemyコア-データベースへの接続

前の章で、SQLAlchemyの式言語について説明しました。 次に、データベースへの接続に関連する手順に進みましょう。

エンジンクラスは、 PoolとDialect を接続して、データベースのソース connectivity and behavior を提供します。 Engineクラスのオブジェクトは、* create_engine()*関数を使用してインスタンス化されます。

create_engine()関数は、データベースを1つの引数として受け取ります。 データベースをどこにでも定義する必要はありません。 標準の呼び出しフォームは、最初の定位置引数として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-API を具体的に述べるために、* URL文字列*は次のような形式を取ります-

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

たとえば、MySQLで* PyMySQLドライバーを使用している場合は、次のコマンドを使用します-

mysql+pymysql://<username>:<password>@<host>/<dbname>
  • echoフラグ*は、SQLAlchemyロギングをセットアップするためのショートカットです。これは、Pythonの標準ロギングモジュールを介して実行されます。 後続の章では、生成されたすべてのSQLについて学習します。 詳細出力を非表示にするには、echo属性を None に設定します。 create_engine()関数の他の引数は、方言固有のものである場合があります。

create_engine()関数は* Engineオブジェクト*を返します。 Engineクラスのいくつかの重要なメソッドは次のとおりです-

Sr.No. Method & Description
1

connect()

接続オブジェクトを返します

2

execute()

SQLステートメント構成を実行します

3

begin()

トランザクションが確立された接続を配信するコンテキストマネージャを返します。 操作が成功すると、トランザクションがコミットされます。それ以外の場合は、ロールバックされます

4

dispose()

エンジンが使用した接続プールを破棄します

5

driver()

エンジンが使用している方言のドライバー名

6

table_names()

データベースで利用可能なすべてのテーブル名のリストを返します

7

transaction()

トランザクション境界内で指定された関数を実行します