Establishing Connectivity - the Engine

Welcome ORM and Core readers alike!

データベースに接続するすべてのSQLAlchemyアプリケーションは、 :class`_engine.Engine` を使用する必要があります。この短いセクションはすべての人のためのものです。

SQLAlchemyアプリケーションの開始は Engine と呼ばれるオブジェクトです。このオブジェクトは特定のデータベースへの接続の中心的なソースとして動作し、これらのデータベース接続のためのファクトリと connection pool と呼ばれる保持スペースの両方を提供します。エンジンは通常、特定のデータベースサーバに対して一度だけ作成されるグローバルオブジェクトであり、データベースホストまたはバックエンドへの接続方法を記述するURL文字列を使用して設定されます。

このチュートリアルでは、インメモリのみのSQLiteデータベースを使用します。これは、実際に既存のデータベースを設定することなく、簡単にテストする方法です。 Enginecreate_engine() 関数を使って作成されます:

>>> from sqlalchemy import create_engine
>>> engine = create_engine("sqlite+pysqlite:///:memory:", echo=True)

create_engine の主な引数は文字列URLで、上では文字列 "sqlite+pysqlite:///:memory:" として渡されています。この文字列は Engine に3つの重要な事実を示します。

  1. どのような種類のデータベースと通信していますか?これは上の sqlite の部分で、SQLAlchemyで dialect として知られるオブジェクトにリンクしています。

  1. 使用している DBAPI は何ですか? Python DBAPI は、SQLAlchemyが特定のデータベースと対話するために使用するサードパーティのドライバです。この場合、私たちは pysqlite という名前を使用していますが、これは現代のPythonではSQLiteのための sqlite3 標準ライブラリインターフェイスとして使用されています。省略すると、SQLAlchemyは選択された特定のデータベースに対してデフォルトの DBAPI を使用します。

  1. データベースを見つける方法は?この場合、URLには /:memory: というフレーズが含まれています。これは、 メモリ内のみ のデータベースを使用することを示す sqlite3 モジュールへのインジケータです。この種のデータベースは、サーバを必要とせず、新しいファイルを作成する必要もないので、実験に最適です。

また、パラメータ create_engine.echo も指定しました。これは Engine に対して、出力するすべてのSQLを標準出力に書き込むPythonロガーに記録するよう指示します。このフラグは Python logging more formally 設定するための簡単な方法で、スクリプトでの実験に役立ちます。多くのSQLの例では、クリックすると完全なSQLの相互作用が表示される [SQL] リンクの下に、このSQLロギング出力が含まれています。