Most Django applications and tutorials center on some variety of user-generated content, such as to-do lists, blogs, and content management systems. This isn’t surprising given Django’s original roots in journalism.
In 2005, Django was originally developed at World Online in Lawrence, Kansas, as a way for reporters to quickly create content for the Web. Since then, it has been used by publishing organizations such as the Washington Post, the Guardian, PolitiFact, and the Onion. This aspect of Django may give the impression that its main purpose is content publishing, or that Django itself is a content management system. With large organizations such as NASA adopting Django as their framework of choice, however, Django has obviously outgrown its original purpose.
In the previous chapter we created a minimal project that made use only of Django’s core HTTP handling and URL routing. In this chapter we will expand upon that example to create a stateless web application that uses more of Django’s utilities, such as input validation, caching, and templates.
Along with a persistent session store on the server, the application can then handle ...