Features and Philosophy
An overview of what SQLAlchemy is about.
What People are Saying about SQLAlchemy
SQLAlchemy is probably the one library in which I've never reached the "wait, I need to do something and can't" point. Every single weird edge case I've had to handle has been supported either natively or by being able to access the raw interfaces directly in a clean way. Fantastic library, can't recommend it more highly.
A really solid, perhaps unique, library that, as far as i can tell, completely addresses the "impedence mismatch" argument. If you're directly using a database api in a structured way, you've probably already reimplemented the sqlalchemy core, and refactoring your program to use sqlalchemy will give you an orm, should you want one, and make your code portable across database implementations even if you don't. If you're already using an orm, refactoring to use sqlalchemy will allow you to to start optimizing the low-level database operations in a coherent way (i.e. not just sprinkling SQL throughout the models).
I'm the biggest proponent of correct, thought-of, and performant SQL where I work, and I have to say that one ORM/database driver combination shifted my opinions towards ORMs.
When you use SQLAlchemy (an ORM for python), you feel in complete control of what is done for you behind the scenes.
First of all, they had the brilliant idea to build an abstraction over sql BEFORE building an ORM, so that if you do not want to work with objects mapped to your table, you can work with dictionaries directly, using a nice sql-generation api which allows you to refactor/check your sql code in a breeze.
Second, the ORM itself is fantastic. I don't really know how to explain it, but you always feel in control of what happens. And if anything does not work like you expect it to, you can always extend the framework. It is extremely well suited for that.
I demand SQLAlchemy to be renamed to SQLAwesome. No particular reason.
- Armin Ronacher, author of the Flask web framework, Jinja templates
SQLAlchemy is one of the best designed libraries I have ever used for any software task, period. I've done all sorts of crazy reflexive joins with it, used the meta programming capabilities to bootstrap my ORM from nothing, added my own rails like scope features to the session maker, etc. SQLAlchemy just plain works(TM). If you're a Python guy, learning it is one of the best things you can do.
...it's the kind of library that not only solves the need it addresses but recommends the language it's written in--when I think about a language other than Python for some project involving a database my first thought is always, 'but what would replace SQLAlchemy?'
Lost faith in ORMs after many battles with Hibernate/Entity Framework/whatnot. SQLAlchemy restores it. ORM done right.
- Jan-Erik Strøm
There’s a lot of Python libraries/frameworks out there we can use, and some of them are a big advantage to write web services. SQLAlchemy is one that comes in mind, that is one of the best ORM/DB tool out there, all languages included, to my knowledge.
- Tarek Ziadé, core Firefox Sync developer
Loving #SQLAlchemy for #Python right now. It just did 95% of the heavy lifting for me. "Lazy" programming is the best!
Then realized I have schema defined in SQLAlchemy. Used it to recreate my schema in PostgreSQL. Booyah. Best ORM I've seen. In any language.
#sqlalchemy is seriously the best ORM. No other ORM in any other language even comes close.
The only toolkit that's even better? SQLAlchemy. It's pretty much the only way I'll interact with RDBMS systems in Python from this point out. And I don't mean I'll be writing every RDBMS interaction as an object-relational mapping. SQLAlchemy is great because it provides a good connection / pooling infrastructure; a good Pythonic query building infrastructure; and then a good ORM infrastructure that is capable of complex queries and mappings (as well as some pretty stone-simple ones).
I've been using SQLAlchemy for about two days now and I can tell you, it's without compare. The ORM is the most flexible I've ever seen. It's freaking magic.
Just for a moment, I thought I'd found something SQLAlchemy doesn't do perfectly.
- S. Lott
As a user of all kinds of ORMs and a write of plenty of my own, I've got to say I am extremely impressed by SQLAlchemy...It is wonderfully documented, and has a great philosophy. If you are using anything else, you should definitely try this.
- Andy Smith
Very sweet, and very quick to get going on my Mac development and Linux deployment environments. I'm currently collecting data from three different databases (SQLite, PostgreSQL, and MySql) on five different servers. This is a killer app for me. I'll be exploring its object-relational capabilities soon, but I am already very fond of the framework, and how lightweight it feels.
- Bruce Kroeze
Using SQLAlchemy has certainly changed the way I think about database access when I'm designing an application.