from sqlalchemy import Column, Integer, String, create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
Base = declarative_base()
engine = create_engine('sqlite:///:memory:', echo=False)
Session = sessionmaker(bind=engine)
session = Session()
class Book(Base):
__tablename__ = 'book'
id = Column(Integer, primary_key=True)
name = Column(String)
author = Column(String)
def __repr__(self):
return f'<Book(name= {self.name}, author= {self.author})>'
Base.metadata.create_all(engine)
book = Book(name='Coding', author='Yoriz')
session.add(book)
book2 = Book(name='More Coding', author='some one')
session.add(book2)
session.commit()
print(session.query(Book).all())
search_string = '%or%' # % before and after match anything
print(session.query(Book).filter(Book.author.like(search_string)).one())
print(session.execute('SELECT * FROM book WHERE author LIKE :author',
{'author': search_string}).fetchone())
Output:
[<Book(name= Coding, author= Yoriz)>, <Book(name= More Coding, author= some one)>]
<Book(name= Coding, author= Yoriz)>
(1, 'Coding', 'Yoriz')