The Django Web Framework

While Python is my primary programming language, using Python alone for web programming, while possible, can be hampering. A powerful web framework allows Python to be leveraged into much greater things for web programming. Django (www.djangoproject.com) is my primary web framework when using Python.

Django is a framework providing many powerful features for web development. It includes an Object-Relational Mapper (ORM) providing a simple and powerful layer to access relational databases such as PostgreSQL, MySQL, or Oracle. Batteries-included authentication and security middleware, am administration panel for users, and a robust template language round out many of Django's features.

Django is largely designed as a bare-bones content management system; without extras it shines in providing a site where publishers can post content and users can read it. With the addition of Django REST Framework (www.djangorestframework.com), Django becomes an ideal backend for rich JavaScript frontends, mobile applications, and Software-as-a-Service APIs. Django REST Framework (DRF) is my primary tool when using Django, providing all the tools needed to validate and serialize data, and provide RESTful APIs with all the proper uses of URLs, HTTP methods and headers, and hyperlinking. DRF is indispensable to many of the projects I have built.