Sqlalchemy-core-connecting-to-database
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() トランザクション境界内で指定された関数を実行します |