データのクエリ
接続 の手順を使用して接続し、メタデータの反映 メソッドのいずれかを使用してメタデータの一部を反映させたら、セッションオブジェクトを使用してデータをクエリできます。
query メソッドを使用したデータのクエリ
マッピングクラスが用意されている場合は、セッションオブジェクトと併用してデータソースをクエリします。エンジンをセッションにバインドしたら、マッピングクラスをセッションのクエリメソッドに提供します。次に例を示します。
engine = create_engine("pingone:///?AuthScheme=OAuth;InitiateOAuth=GETANDREFRESH;WorkerAppEnvironmentId=eebc33a8-xxxx-4f3a-yyyy-d3e5262fd49e;Region=NA;OAuthClientId=client_id;OAuthClientSecret=client_secret;")
factory = sessionmaker(bind=engine)
session = factory()
for instance in session.query([CData].[Administrators].Users).filter_by(Id="39ef9b6f-5973-4701-bd19-7950d4b7d6e0"):
print("Id: ", instance.Id)
print("Username: ", instance.Username)
print("Email: ", instance.Email)
print("---------")
execute メソッドを使用したデータのクエリ
セッションオブジェクトは、適切なテーブルオブジェクトと一緒にexecute() メソッドを使用してクエリを実行することもできます。アクティブなセッションがあると仮定すると、以下は同様に実行可能です。[CData].[Administrators].Users_table = [CData].[Administrators].Users.metadata.tables["[CData].[Administrators].Users"]
for instance in session.execute([CData].[Administrators].Users_table.select().where([CData].[Administrators].Users_table.c.Id == "39ef9b6f-5973-4701-bd19-7950d4b7d6e0")):
print("Id: ", instance.Id)
print("FullName: ", instance.Name)
print("City: ", instance.BillingCity)
print("---------")