While ORMs solve 80% of the needs, you still need the power and flexibility of SQL for those 20% of the needs. Anytime you need reporting, complex joins or aggregation - SQL is a natural choice.<p>But generating dynamic SQL by hand is error prone and has lot of repetition, especially when your query grows big.<p>JinjaSQL gives you the flexibility of a template language (Jinja), without having to manually track your bind parameters. It's not a replacement for an ORM, but is meant for those 10-20% use cases that require the power of SQL.