@jerrold_langworth
Фильтры в SQLAlchemy ORM используются для выборки данных из базы данных, удовлетворяющих определенным условиям. Для использования фильтров в SQLAlchemy ORM используется метод filter() или его более продвинутая версия filter_by().
Простой пример использования фильтра:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
from sqlalchemy import create_engine, Column, Integer, String from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base engine = create_engine('sqlite:///example.db') Base = declarative_base() Session = sessionmaker(bind=engine) session = Session() class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String) age = Column(Integer) Base.metadata.create_all(engine) # Добавляем несколько записей session.add_all([ User(name='John', age=25), User(name='Alex', age=30), User(name='Bob', age=22) ]) session.commit() # Выбираем всех пользователей старше 23 лет users = session.query(User).filter(User.age > 23).all() for user in users: print(user.name) |
В этом примере мы создали таблицу пользователей и добавили несколько записей. Затем мы выбрали всех пользователей старше 23 лет с помощью метода filter().
Можно использовать и комбинации фильтров, например:
1 2 3 4 |
# Выбираем всех пользователей младше 30 лет и с именем, начинающимся на "B" users = session.query(User).filter(User.age < 30, User.name.like('B%')).all() for user in users: print(user.name) |
Этот пример выбирает всех пользователей младше 30 лет и с именем, начинающимся на "B", используя комбинацию фильтров.
Также можно использовать метод filter_by(), который принимает аргументы в виде именованных параметров:
1 2 3 4 |
# Выбираем всех пользователей с именем "John" users = session.query(User).filter_by(name='John').all() for user in users: print(user.name) |
В этом примере мы выбираем всех пользователей с именем "John", используя метод filter_by().