Skip to content

Instantly share code, notes, and snippets.

@Shuhala
Created May 20, 2019 22:20
Show Gist options
  • Save Shuhala/c2292f16fa329c26b222d4e04b4ef306 to your computer and use it in GitHub Desktop.
Save Shuhala/c2292f16fa329c26b222d4e04b4ef306 to your computer and use it in GitHub Desktop.
SQLAlchemy findall
def find_all(session: Session, offset: int, limit: int, order_by: str = "", filters: Optional[list] = None, joins: Optional[list] = None):
if not filters:
filters = []
if not joins:
joins = []
query = session.query(self._model_type)
if joins:
query = query.join(*joins)
if filters:
query = query.filter(*filters)
relationships = inspect(self._model_type).relationships.keys()
query = query.options(*[lazyload(r_key).load_only("id") for r_key in relationships])
if order_by:
query = query.order_by(order_by)
query = query.limit(limit).offset(offset)
return query.all()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment