What do you like?
Sending URLs: I have never been a big fan of "/foo.php", this is the file "foo.php" on my server, and if I need more convenient URLs, I need to get around mod_rewrite and maintain this according to what awaits my logic in foo.
ORM: because 90% + of your queries, in my experience, do not need to be written manually. In general, smart caching is much more important for performance. You can always abandon raw SQL as needed.
Middleware and Signals: It's easy to distribute most of the parts of the request / response / view / render cycle without touching the Django code itself.
What made you switch / use it?
This happened when I was disappointed with the suggestions of the Python web framework. Easy to sell for me.
How fast does this happen in production?
Hmm, to be honest, I never cared too much. Part of the web server of your application (in my opinion) is always the easiest to scale. As long as you use the “best practices” and don’t share anything, all you have to do is add a software load balancer, and you can add new web servers until the cow returns home. The first bottleneck that users typically encounter is loading the database, but Django provides you with excellent caching APIs to help you ease this.
However, I was only looking through this, but it seems faster than Rails and the well-known PHP frameworks: http://wiki.rubyonrails.org/rails/pages/Framework+Performance
How hard is it to handle this?
I think it depends on how you define "master." The documentation is excellent, for the decent size of the site / application, I think you will use a bit of everything, which is a great start.
Bret
source share