SQLAlchemy - Lehçeler

SQLAlchemy, çeşitli veritabanı türleriyle iletişim kurmak için lehçeler sistemini kullanır. Her veritabanının karşılık gelen bir DBAPI sarıcısı vardır. Tüm lehçeler, uygun bir DBAPI sürücüsünün kurulu olmasını gerektirir.

Aşağıdaki lehçeler SQLAlchemy API'sine dahil edilmiştir -

  • Firebird
  • Microsoft SQL Sunucusu
  • MySQL
  • Oracle
  • PostgreSQL
  • SQL
  • Sybase

Bir URL'ye dayalı bir Engine nesnesi, create_engine () işlevi tarafından üretilir. Bu URL'ler kullanıcı adı, şifre, ana bilgisayar adı ve veritabanı adını içerebilir. Ek yapılandırma için isteğe bağlı anahtar sözcük bağımsız değişkenleri olabilir. Bazı durumlarda, bir dosya yolu kabul edilir ve bazılarında, "ana bilgisayar" ve "veritabanı" bölümlerinin yerini "veri kaynağı adı" alır. Bir veritabanı URL'sinin tipik biçimi aşağıdaki gibidir -

dialect+driver://username:password@host:port/database

PostgreSQL

PostgreSQL lehçesi kullanır psycopg2varsayılan DBAPI olarak. pg8000, aşağıda gösterildiği gibi saf Python yerine de kullanılabilir:

# default
engine = create_engine('postgresql://scott:tiger@localhost/mydatabase')

# psycopg2
engine = create_engine('postgresql+psycopg2://scott:tiger@localhost/mydatabase')

# pg8000
engine = create_engine('postgresql+pg8000://scott:tiger@localhost/mydatabase')

MySQL

MySQL lehçesi kullanır mysql-pythonvarsayılan DBAPI olarak. Aşağıdaki gibi MySQL-connector-python gibi birçok MySQL DBAPI mevcuttur -

# default
engine = create_engine('mysql://scott:tiger@localhost/foo')

# mysql-python
engine = create_engine('mysql+mysqldb://scott:tiger@localhost/foo')

# MySQL-connector-python
engine = create_engine('mysql+mysqlconnector://scott:tiger@localhost/foo')

Oracle

Oracle lehçesi kullanır cx_oracle aşağıdaki gibi varsayılan DBAPI olarak -

engine = create_engine('oracle://scott:[email protected]:1521/sidname')
engine = create_engine('oracle+cx_oracle://scott:tiger@tnsname')

Microsoft SQL Sunucusu

SQL Server lehçesi kullanır pyodbcvarsayılan DBAPI olarak. pymssql de mevcuttur.

# pyodbc
engine = create_engine('mssql+pyodbc://scott:tiger@mydsn')

# pymssql
engine = create_engine('mssql+pymssql://scott:tiger@hostname:port/dbname')

SQLite

SQLite, Python yerleşik modülünü kullanarak dosya tabanlı veritabanlarına bağlanır sqlite3varsayılan olarak. SQLite yerel dosyalara bağlandığından, URL biçimi biraz farklıdır. URL'nin "dosya" kısmı, veritabanının dosya adıdır. Göreli bir dosya yolu için bu, aşağıda gösterildiği gibi üç eğik çizgi gerektirir -

engine = create_engine('sqlite:///foo.db')

Ve mutlak bir dosya yolu için, üç eğik çizgiyi aşağıda verilen mutlak yol izler -

engine = create_engine('sqlite:///C:\\path\\to\\foo.db')

Bir SQLite: memory: veritabanı kullanmak için, aşağıda verildiği gibi boş bir URL belirtin -

engine = create_engine('sqlite://')

Sonuç

Bu öğreticinin ilk bölümünde, SQL ifadelerini yürütmek için İfade Dilinin nasıl kullanılacağını öğrendik. İfade dili SQL yapılarını Python koduna yerleştirir. İkinci bölümde, SQLAlchemy'nin nesne ilişkisi haritalama yeteneğini ele aldık. ORM API, SQL tablolarını Python sınıflarıyla eşler.