Great open-source software almost always comes about because one or more clever developers had a problem to solve and no viable or cost-effective solution available. Django is no exception. Adrian and Jacob have long since “retired” from the project, but the fundamentals of what drove them to create Django lives on. It is this solid base of real-world experience that has made Django as successful as it is. In recognition of their contribution, I think it best we let them introduce Django in their own words (edited and reformatted from the original book). By Adrian Holovaty and Jacob Kaplan-Moss - December 2009; “In the early days, Web developers wrote every page by hand. Updating a Website meant editing HTML; a “redesign” involved redoing every single page, one at a time. As Web sites grew and became more ambitious, it quickly became obvious that that approach was tedious, time-consuming, and ultimately untenable”.
A group of enterprising hackers at NCSA (the National Center for Supercomputing Applications, where Mosaic, the first graphical Web browser, was developed) solved this problem by letting the Web server spawn external programs that could dynamically generate HTML. They called this protocol the Common Gateway Interface or CGI, and it changed the Web forever. It’s hard now to imagine what a revelation CGI must have been: instead of treating HTML pages as simple files on disk, CGI allows you to think of your pages as resources generated dynamically on demand. The development of CGI ushered in the first generation of dynamic Web sites.
However, CGI has its problems: CGI scripts need to contain a lot of repetitive “boilerplate” code, they make code reuse difficult, and they can be difficult for first-time developers to write and understand. PHP fixed many of these problems, and it took the world by storm - it’s now
the most popular tool used to create dynamic Web sites, and dozens of similar languages (ASP, JSP, etc.) followed PHP’s design closely.