CData Python Connector for Email

Build 20.0.7587

データのクエリ

接続 の手順で接続したら、セッションオブジェクトを使用してデータをクエリできます。

マッピングクラスを使用したデータのモデル化

ORM でモデル化するテーブルのマッピングクラスを宣言します。これは"sqlalchemy.ext.declarative.declarative_base" を使って行います。データモデル内の既知のテーブルは、以下の例のように、部分的または完全にモデル化されます。
import sqlalchemy.ext.declarative.declarative_base
Base = declarative_base()
class [INBOX](Base):
	__tablename__ = "[INBOX]"
	Id = Column(String, primary_key=True)
	From = Column(String)
	Subject = Column(String)

query メソッドを使用したデータのクエリ

マッピングクラスが用意されている場合は、セッションオブジェクトと併用してデータソースをクエリします。エンジンをセッションにバインドしたら、以下のように、マッピングクラスをセッションのクエリメソッドに提供するだけです。

engine = create_engine("email:///?Port=993;Server=imap.gmail.com;Password=password;User=user;Protocol=IMAP;SMTP Port=587;SMTP Server=smtp.gmail.com;")
factory = sessionmaker(bind=engine)
session = factory()
for instance in session.query([INBOX]).filter_by(Subject="Test"):
	print("Id: ", instance.Id)
	print("From: ", instance.From)
	print("Subject: ", instance.Subject)
	print("---------")

execute メソッドを使用したデータのクエリ

別の方法として、セッションオブジェクトは、適切なテーブルオブジェクトと一緒にexecute() メソッドを使用してクエリを実行することもできます。アクティブなセッションがあると仮定すると、以下は同様に実行可能です。

[INBOX]_table = [INBOX].metadata.tables["[INBOX]"]
for instance in session.execute([INBOX]_table.select().where([INBOX]_table.c.Subject == "Test")):
	print("Id: ", instance.Id)
	print("FullName: ", instance.Name)
	print("City: ", instance.BillingCity)
	print("---------")

Copyright (c) 2020 CData Software, Inc. - All rights reserved.
Build 20.0.7587