SQLAlchemy ORM - Filter anwenden

In diesem Kapitel werden wir erläutern, wie Filter und auch bestimmte Filteroperationen zusammen mit ihren Codes angewendet werden.

Die durch das Abfrageobjekt dargestellte Ergebnismenge kann mithilfe der filter () -Methode bestimmten Kriterien unterzogen werden. Die allgemeine Verwendung der Filtermethode ist wie folgt:

session.query(class).filter(criteria)

Im folgenden Beispiel wird die durch die SELECT-Abfrage in der Customers-Tabelle erhaltene Ergebnismenge durch eine Bedingung (ID> 2) gefiltert.

result = session.query(Customers).filter(Customers.id>2)

Diese Anweisung wird in folgenden SQL-Ausdruck übersetzt:

SELECT customers.id 
AS customers_id, customers.name 
AS customers_name, customers.address 
AS customers_address, customers.email 
AS customers_email
FROM customers
WHERE customers.id > ?

Da der gebundene Parameter (?) Als 2 angegeben wird, werden nur die Zeilen mit der ID-Spalte> 2 angezeigt. Der vollständige Code ist unten angegeben -

from sqlalchemy import Column, Integer, String
from sqlalchemy import create_engine
engine = create_engine('sqlite:///sales.db', echo = True)
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()

class Customers(Base):
   __tablename__ = 'customers'
   
   id = Column(Integer, primary_key = True)
   name = Column(String)

   address = Column(String)
   email = Column(String)

from sqlalchemy.orm import sessionmaker
Session = sessionmaker(bind = engine)
session = Session()
result = session.query(Customers).filter(Customers.id>2)

for row in result:
   print ("ID:", row.id, "Name: ",row.name, "Address:",row.address, "Email:",row.email)

Die in der Python-Konsole angezeigte Ausgabe lautet wie folgt:

ID: 3 Name: Rajender Nath Address: Sector 40, Gurgaon Email: [email protected]
ID: 4 Name: S.M.Krishna Address: Budhwar Peth, Pune Email: [email protected]