Django: Understanding the concept of a Django app

Explaining the concept and purpose of apps in the Django web framework.


Django project

A Django project is composed of a collection of different settings, configurations, and apps. We can have one or multiple apps in a single project.


Django app

An app or application is used to serve a unique purpose. Each app that is created in Django consists of URLs, views, models, and templates.


For simpler projects, we may only need to create one app... Which may be applicable to a blog.


The following illustration depicts the concept of Django apps:



  • Black represents our Django project.


  • Green represents the apps that we have created ourselves - "internal apps".


  • Orange represents the apps that have been created by others. These apps have been installed through PIP (grey). Otherwise known as "external apps".



Let's say that we want to create a simple blog website then...


We would only really need to create one Django app ourselves, that houses the functionalities that we need to develop our blog.


As a web application gets more complex, there will be a further need to create more Django apps, but for a simple web application, a single Django app is more than sufficient.


The following illustration shows a single app (perfect for a blog site):