Establishing Connectivity - the Engine¶
Welcome ORM and Core readers alike!
データベースに接続するすべてのSQLAlchemyアプリケーションは、 :class`_engine.Engine` を使用する必要があります。この短いセクションはすべての人のためのものです。
SQLAlchemyアプリケーションの開始は Engine
と呼ばれるオブジェクトです。このオブジェクトは特定のデータベースへの接続の中心的なソースとして動作し、これらのデータベース接続のためのファクトリと connection pool と呼ばれる保持スペースの両方を提供します。エンジンは通常、特定のデータベースサーバに対して一度だけ作成されるグローバルオブジェクトであり、データベースホストまたはバックエンドへの接続方法を記述するURL文字列を使用して設定されます。
このチュートリアルでは、インメモリのみのSQLiteデータベースを使用します。これは、実際に既存のデータベースを設定することなく、簡単にテストする方法です。 Engine
は create_engine()
関数を使って作成されます:
>>> from sqlalchemy import create_engine
>>> engine = create_engine("sqlite+pysqlite:///:memory:", echo=True)
create_engine
の主な引数は文字列URLで、上では文字列 "sqlite+pysqlite:///:memory:"
として渡されています。この文字列は Engine
に3つの重要な事実を示します。
どのような種類のデータベースと通信していますか?これは上の
sqlite
の部分で、SQLAlchemyで dialect として知られるオブジェクトにリンクしています。
使用している DBAPI は何ですか? Python DBAPI は、SQLAlchemyが特定のデータベースと対話するために使用するサードパーティのドライバです。この場合、私たちは
pysqlite
という名前を使用していますが、これは現代のPythonではSQLiteのための sqlite3 標準ライブラリインターフェイスとして使用されています。省略すると、SQLAlchemyは選択された特定のデータベースに対してデフォルトの DBAPI を使用します。
データベースを見つける方法は?この場合、URLには
/:memory:
というフレーズが含まれています。これは、 メモリ内のみ のデータベースを使用することを示すsqlite3
モジュールへのインジケータです。この種のデータベースは、サーバを必要とせず、新しいファイルを作成する必要もないので、実験に最適です。
また、パラメータ create_engine.echo
も指定しました。これは Engine
に対して、出力するすべてのSQLを標準出力に書き込むPythonロガーに記録するよう指示します。このフラグは Python logging more formally 設定するための簡単な方法で、スクリプトでの実験に役立ちます。多くのSQLの例では、クリックすると完全なSQLの相互作用が表示される [SQL]
リンクの下に、このSQLロギング出力が含まれています。