When I first started learning Android, I found a fantastic series of YouTube videos by Marakana that stepped through building a Twitter clone. It walked me through all the steps and thus explained to me the basics, common libraries, best practices, resources, etc. Looking over an expert's shoulder while building a practical app was the absolute best learning method for me. More than anything else, it provided me with a skeleton I could build on. From there I could continue researching and know which questions to ask.

I'm now looking for something similar with Django. Of course I checked out the official tutorial, and The Django Book. The former flexes some Django muscles, but doesn't walk through a full app. The latter is certainly better, but the app it builds is very basic and by the time it reaches the more advanced subjects the tutorial breaks down and its back to short code snippets and documentation-like explanations.

Checking out Amazon isn't terribly encouraging. The latest general Django book was released almost two-and-half years ago and only covers v1.0. To be fair, I understand that this is probably because the online documentation is excellent, but again, I'm looking for a walk-through. I did experience a spark of excitement when I came across Practical Django Projects, which sounds like exactly what I was looking for. However, some of the reviews make claims of some egregious problems--no source code, many errors and no errata, totally apathetic author and unresponsive publisher, etc.

And so I'm left at square one and need your advice. Is there a place where I can sit on a giant's shoulder and be walked through a realistic Django project from start to finish? Preferably using a more recent version of the framework.

  • 1
    Duplicate of programmers.stackexchange.com/questions/83716/… – Cyclops Dec 25 '11 at 13:28
  • 2
    @Cyclops The answers there don't address the question here about a tutorial that guides you through a complete project. – Adam Lear Dec 25 '11 at 13:34
  • @Yony Are you looking for something like railstutorial.org but for Django? – Adam Lear Dec 25 '11 at 13:35
  • @Anna, yes. The Ruby on Rails Tutorial is a wonderful piece of work. Very thorough with a friendly, responsive author. That's exactly what I'm looking for with Django. – Yony Dec 26 '11 at 20:39

It is a good idea to work through the official Django tutorials at djangoproject.com. These are written by some of the core developers and raise important issues regarding Python/Django/DB versions and syntax evolution. But, yes, the Polls app created in the process is rudimentary, so here are my recommendations to useful Django tutorials which involve app creation:

13 series of screencasts creating a Django web app: http://showmedo.com/videotutorials/series?name=PPN7NA155

Django by Example: code walkthroughs for several useful apps http://www.lightbird.net/dbe/

lastly, I would like to suggest you give Practical Django Projects a second chance. The second edition of the book has been published and the book is available on author, James Bennett's bitbucket repository. (i'm a new user so can't post more than 2 hyperlinks - kindly google)

  • Per your advice, I decided to give Practical Django Projects a try. I'm working my way through it now. Will post back with feedback in bit. – Yony Dec 26 '11 at 20:36
  • 1
    Yony, how is the book looking? Thanks. – Uros K Feb 14 '12 at 21:56
  • Unfortunately several events led me to drop Django for a while. However, there's a promising project on Kickstarter now that aims to get some thorough Django lessons using the latest version of the framework made by Jan. of next year. I hope that by the time it comes out I'll be able to attend to it again. kickstarter.com/projects/657368266/getting-started-with-django – Yony Sep 13 '12 at 14:16

I think a book that better goes over Django in depth is Beginning Django E-commerce .

However, I do suggest you look over the second addition of Practical Django Projects. I would also advise you to google django cheat sheet. It gives you a flow chart of the methods you will be accessing most when building your application. The Django documentation really is fantastic there are a couple of areas it lacks in though as you stated.

I only believe Django was so hard for me starting off as I had no OOP experience, and only prior programming was small amounts of VB. Html/css don't really count. Then I realized that depending on the project django really makes it so that the developer does not have to program a lot when it comes to basic projects.

Now it really gives me a creative spark when I can sift through the django documentation and understand it. HTML5 and its canvas element. There is a lot on the horizon. Django is absolutely wonderful for building informational sites, presenting information, reading material, blogs, photologues, etc . . Staying to python as much as I can though I must say that for something more along the lines of a real application, I would have to vote for flask or web.py. Django has tons of fluff.

You're requests per second can be greatly optimized with JS, caching, and other optimization techniques. However, what really hinders it is running each request through multiple context processors, long list iterations and complex queryset filtering.

I am sure you're saying well what's the problem? Nothing at all. The functionality that Django is able to offer a developer out of the box is second to none. The ORM is fantastic at creating the API and admin interfaces for you. To gain all this fluff, one must give up some control. Date-based generic views are a life saver, as are re-useable 3rd party applications. Django's popularity greatly helps and it has a wonderful community. But, as I stated depending on your aim, and level of programming skill, you may want to check out some other more rugged frameworks(web.py, flask).

Sorry to ramble, Django gives you the components to create content based management systems for content based sites, but isn't best suited(not necessarily lacking) if you are looking to create a web application in a more traditional sense of application. I'm not saying Django can't do it. It's just a matter of using a hammer to nail down a board or using the side of your wrench. I am pro-django fyi, and pro flask / web.py .

Not the answer you're looking for? Browse other questions tagged or ask your own question.