Understanding Django's file Structure

This article is part of a series regarding Complete Beginners Guide to Django. So, if you haven't seen the first part of this series, check it out at

So, after following the instructions in the first part, your file structure should like this

├── db.sqlite3
├── livecode247
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-38.pyc
│   │   ├── settings.cpython-38.pyc
│   │   ├── urls.cpython-38.pyc
│   │   └── wsgi.cpython-38.pyc
│   ├── asgi.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py
└── myenv
    └── *


manage.py is basically the main file of our whole project which runs our application. This file is rarely edited manually if not never. I have never had to edit it for anything


db.sqlite3 is the default sqlite database created by Django for our use. We will be using this database to store data regarding our application like blogs, the content inside them, etc.

livecode247 directory


An empty file file that tells Python that this directory should be a Python package


This directory is just some stuff which is generated by Django for caching stuff. It's not of much use to us


A file which helps us to deploy our app with ASGI-compatible web servers.


A file which helps us to deploy our app with WSGI-compatible web servers.


Stores all the settings and configurations for our projects. We will be updating this quite frequently


Stores all the urls of the site and what view they point to.

In the next part of this series, we will be talking about how to create an app in our project and add a basic hello world page.