データベース

DB-API

Python Database API(DB-API)は、Pythonデータベースアクセスモジュール用の標準インタフェースを定義します。それは PEP 249 に書かれています。 sqlite3psycopgmysql-python のようなほぼすべてのPythonデータベースモジュールは、このインターフェースに準拠しています。

このインタフェースに準拠したモジュールで作業する方法を説明するチュートリアルが ここここ で見つかります。

SQLAlchemy

SQLAlchemy は、よく使われるデータベースツールキットです。 多くのデータベースライブラリとは異なり、ORMレイヤーを提供するだけでなく、SQLを使用せずにデータベースに依存しないコードを記述するための一般化されたAPIも提供します。

$ pip install sqlalchemy

Records

Records は、生のSQLクエリをさまざまなデータベースに送るために設計された、最小限のSQLライブラリです。 データはプログラムで使用することも、多数の有用なデータ形式にエクスポートすることもできます。

$ pip install records

SQLデータをエクスポートするためのコマンドラインツールも含まれています。

Django ORM

Django ORMはデータベースアクセスを提供するために Django によって使用されるインタフェースです。

これは models の考え方に基づいています。これは、Pythonでデータを操作しやすくするための抽象です。

基本:

  • 各モデルは、django.db.models.Modelをサブクラス化するPythonクラスです。
  • モデルの各属性は、データベースフィールドを表します。
  • Djangoは自動的に生成されたデータベースアクセスAPIを提供します。 クエリーの作成 を参照してください。

peewee

peewee は、デフォルトでSQLite、MySQL、PostgresをサポートするPython 2.6+と3.2+をサポートする軽量化に重点を置いた別のORMです。 model layer はDjango ORMと似ており、 SQLのようなメソッド を使用してデータを照会します。 SQLite、MySQL、Postgresはすぐにサポートされていますが、 アドオンのコレクション 利用可能です。

PonyORM

PonyORM は、データベースを照会するのに異なるアプローチをとるORMです。 SQLのような言語やブール式を書く代わりに、Pythonのジェネレータ構文が使われています。 PonyORMエンティティを生成できるグラフィカルなスキーマエディタもあります。 Python 2.6以降とPython 3.3以降をサポートし、SQLite、MySQL、Postgres、Oracleに接続できます

SQLObject

SQLObject はもう一つのORMです。 共通データベースシステムMySQL、Postgres、SQLite、SAP DB、SyBase、MSSQLなどのよりエキゾチックなシステムをサポートしています。 Python 2.6以降のPython 2しかサポートしていません。