SQLAlchemyCore-データベースへの接続
前の章では、SQLAlchemyの式言語について説明しました。次に、データベースへの接続に関連する手順に進みましょう。
エンジンクラスは接続します Pool and Dialect together データベースのソースを提供する connectivity and behavior。Engineクラスのオブジェクトは、create_engine() 関数。
create_engine()関数は、データベースを1つの引数として取ります。データベースをどこにでも定義する必要はありません。標準の呼び出しフォームでは、URLを最初の位置引数として送信する必要があります。通常は、データベースの方言と接続引数を示す文字列です。以下のコードを使用して、データベースを作成できます。
>>> from sqlalchemy import create_engine
>>> engine = create_engine('sqlite:///college.db', echo = True)
のために MySQL database、以下のコマンドを使用します-
engine = create_engine("mysql://user:pwd@localhost/college",echo = True)
具体的に言及する DB-API 接続に使用する、 URL string 次のような形を取ります-
dialect[+driver]://user:password@host/dbname
たとえば、使用している場合 PyMySQL driver with MySQL、次のコマンドを使用します-
mysql+pymysql://<username>:<password>@<host>/<dbname>
ザ・ echo flagはSQLAlchemyロギングを設定するためのショートカットであり、Pythonの標準ロギングモジュールを介して実行されます。以降の章では、生成されたすべてのSQLについて学習します。詳細出力を非表示にするには、echo属性をに設定します。None。create_engine()関数の他の引数は、方言固有の場合があります。
create_engine()関数は Engine object。Engineクラスのいくつかの重要なメソッドは次のとおりです。
シニア番号 | 方法と説明 |
---|---|
1 | connect() 接続オブジェクトを返します |
2 | execute() SQLステートメントコンストラクトを実行します |
3 | begin() トランザクションが確立された接続を配信するコンテキストマネージャーを返します。操作が成功すると、トランザクションがコミットされます。それ以外の場合は、ロールバックされます。 |
4 | dispose() エンジンによって使用される接続プールを破棄します |
5 | driver() エンジンで使用されている方言のドライバー名 |
6 | table_names() データベースで使用可能なすべてのテーブル名のリストを返します |
7 | transaction() トランザクション境界内で指定された関数を実行します |