SQLAlchemy ORM - Áp dụng bộ lọc
Trong chương này, chúng ta sẽ thảo luận về cách áp dụng bộ lọc và các hoạt động bộ lọc nhất định cùng với mã của chúng.
Tập kết quả được đại diện bởi đối tượng Truy vấn có thể tuân theo các tiêu chí nhất định bằng cách sử dụng phương thức filter (). Cách sử dụng chung của phương pháp bộ lọc như sau:
session.query(class).filter(criteria)
Trong ví dụ sau, tập kết quả thu được bằng truy vấn SELECT trên bảng Khách hàng được lọc theo một điều kiện, (ID> 2) -
result = session.query(Customers).filter(Customers.id>2)
Câu lệnh này sẽ chuyển thành biểu thức SQL sau:
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 > ?
Vì tham số ràng buộc (?) Được cho là 2 nên chỉ những hàng có cột ID> 2 mới được hiển thị. Mã hoàn chỉnh được cung cấp bên dưới -
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)
Kết quả hiển thị trong bảng điều khiển Python như sau:
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]