The PilotLight Blog

"The Web framework for perfectionists with deadlines."

By Matt Blair. Posted on November 12, 2010.

Filed under Django

Django Logo

Browsing our website you might have noticed that we talk about Django -- a lot. Most of our projects are developed using this mythical technology, yet you probably never heard of it before. What is it? What does it do?

If you are developing a web application chances are it is going to have a database, HTML templates, some forms, user accounts, and an administrative interface of some sort to tie it all together.

Back in the early days of the Web (which really wasn't that long ago) developers had a habit of re-inventing the wheel to implement this basic functionality over and over again. Everybody did it differently and every developer seemed to have their own set of tools stashed away that they used for every project (I know I did).

Over the past few years a renaissance of sorts has been happening in the web development field. Developers all over the world began flocking to "web development frameworks" as a new way to develop for the Web. These frameworks provide a solid base from which to start a project so developers can get Real Work done instead of wasting time writing template libraries, database classes, form libraries, and all of the other things required by a modern web application.

After spending some time with a variety of frameworks (CodeIgniter (PHP), Ruby on Rails (Ruby), and a few others) pilotLight decided to adopt Django as our framework of choice. Here are a few reasons why we chose Django.

  • Python - Django is written in Python. Python is a clean, logical, and very powerful scripting language. After spending a good part of my life working with PHP, the switch to Python provided a much needed breath of fresh air.

  • Automatic admin interface - Django comes with an application (django.contrib.admin) that can be used to automatically generate interfaces for adding and changing content on a website. This app is a time-saver that helps us reduce costs and provide more functionality at the same time.

  • Template Language - Separating logic from presentation is a very important step in designing maintainable web applications. Django provides a solid solution with its elegant, built-in template language.

  • Database Abstraction - Django provides a fully featured database library (ORM) that allows developers to write database related code in Python (way cleaner than writing raw SQL) that works across many database backends. Out of the box Django supports PostgreSQL, MySQL, SQLite, and Oracle. Third-party libraries are available for MSSQL and others. We've made great use of this in the past to create web applications that interface with legacy databases.

  • Form Library -- Every web application has forms of some sort. Writing form processing code used to be very painful. Django relieves this pain by providing an extensive forms library that lets developers generate, validate, and process forms by writing clean, legible Python code. Another breath of fresh air.

  • Error Reporting - If something goes wrong with a Django site (be honest, it's bound to happen sometime) detailed information about the error is logged so we can quickly fix the issue.

  • Magic Free - Django adheres to the Python philosophy that states that explicit is better than implicit. Some frameworks are designed in a way so that things "just work" if you lay out the files in a certain way and work within specific constraints. This is great if you can stay within these constraints, but in the real word things don't always work out that way. With Django you can get a clear understanding of how everything works by reading the source code to Django itself. As a developer I find it much easier to dig into well written source code to see how something works instead of searching through gobs of documentation.

  • Batteries Included - In addition to the cool stuff listed above Django provides libraries for common website functionality such as RSS Feeds, User Authentication, Caching, Email Notifications, Pagination, Sessions, Sitemaps, and more. These tools help us save time and reduce costs for our customers.

I can probably go on for days yammering about things I like about Django, but I will stop here for now.

If you just skipped to the end (TLDR) all of this can be summarized by saying that Django lets us spend more time getting Real Work done which helps us write awesome web applications quickly, efficiently, and in a cost-effective manner. Can't go wrong with that.

Learn more about Django at djangoproject.com.


Comments are closed.

Comments have been closed.

ABOUT

PilotLight Studios is an experienced team of web application developers located in the Philadelphia area. We specialize in developing custom web applications and content management systems using the Django Web Framework.

RECENT POSTS

POPULAR POSTS

CATEGORIES

ARCHIVE