What People are Saying about SQLAlchemy
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.
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.
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.
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).
SQLAlchemy is a pretty amazing design...In SQLAlchemy, you need to explicitly start a session. What's amazing is that all the changes you make during that session are kept in some kind of parse tree, and then when the session ends SQL is created on-the-fly to produce a single, optimal SQL statement for that particular sequence of changes. I found this idea pretty mind-blowing.
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.
- 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.
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.
Using SQLAlchemy has certainly changed the way I think about database access when I'm designing an application.