Model

Model

A minimal Python ORM for MySQL, MariaDB and SQLite that favors writing explicit SQL-like queries with full static type checking over the query-building magic of larger ORMs.

🔗 Visit Model
📁 Databases & Storage🗣️ English📅 September 5, 2026

Description

Popular Python ORMs like SQLAlchemy or Django's ORM save you from writing SQL by hand, but that convenience comes with a learning curve and behavior that can feel like a black box — it's not always obvious what query is actually being sent to your database. Model takes the opposite approach: it stays close to SQL, so what you write is close to what runs, while still giving you Python objects and type-checked queries instead of raw strings.

It supports MySQL, MariaDB and SQLite, includes 73 static-typing overloads so IDEs can autocomplete and type-check queries against your schema, and ships a CLI (schema.py) that can generate and update your schema definitions automatically from an existing database. It's MIT-licensed and, at 5 stars and 5 commits, very early-stage — a small, focused library rather than a general-purpose framework.

💬 Our review

The short version: Model is for developers who find SQLAlchemy or Django's ORM too abstracted and want something closer to writing SQL directly, with type safety layered on top instead of a full query-builder in the way.

Against SQLAlchemy, Peewee or Django ORM — all mature, widely deployed, and battle-tested at scale — Model's honest selling point is simplicity and explicitness, not features: no relationship management, no complex migrations, just insert/load/query/update/delete against MySQL/MariaDB/SQLite with strong typing. That's a legitimate niche (plenty of developers do find bigger ORMs' magic frustrating to debug), but at 5 commits and 5 stars, it hasn't been tested outside its own author's use, and there's no ecosystem of plugins or community troubleshooting to fall back on if you hit an edge case. It's free either way, so the real cost is the risk of depending on a single-maintainer, pre-1.0 project. Worth a try for a small personal project or internal tool where you value explicit SQL over ORM abstraction; for anything with real production stakes or complex relational data, SQLAlchemy or Django ORM remain the safer default.

💰 Pricing

Open sourceFree
Self-hosted Free

📊 Global score

53Average
🌐Availability15/100Faible

1 language · 0 platform

📄Profile90/100Excellent

Profile completeness

🤖 AI-enriched data

💰 Pricing model
💳 Open source

Gratuit, licence MIT

👥 Target audienceDéveloppeurs Python qui préfèrent des requêtes proches du SQL avec typage statique plutôt qu'un ORM à fort niveau d'abstraction
🗣️ Languagesen
🌍 Target countriesInternational
👍

Pros

Design explicite proche du SQL, moins de comportement caché qu'un gros ORM

73 surcharges de typage statique pour l'autocomplétion et la vérification par l'IDE

CLI de synchronisation de schéma en une commande

👎

Cons

Très jeune (5 étoiles, 5 commits), aucune adoption communautaire

Pas de gestion de relations ni de migrations complexes

Limité à MySQL/MariaDB/SQLite, mainteneur unique

❓ Frequently asked questions

What is Model in one sentence?
Which databases does it support?
How is it different from SQLAlchemy?
Does it support database migrations or relationships?
Is it worth the money compared to alternatives?
Which tool should you pick for your case?