Sitemap

Django Custom 404 Page

2 min readSep 8, 2020

Simple customization for 404 not found page. Django 3.0, official docs here.

Press enter or click to view image in full size
Default Django 404 page
Custom 404 Page

Step 1: Preparation, Create Django Project, Initial Migration
install virtualenv: pip install virtualenv
create virtualenv: virtualenv venv
start virtualenv: venv/Scripts/activate
install Django in virtualenv: pip install django==3.0
Create Django: django-admin startproject myproject
Go to myproject folder: cd myproject
Migrate: python manage.py migrate

Step 2. Create Django Apps
Create apps: python manage.py startapp myapp
Add myapp to INSTALLED_APPS in myproject/settings.py

Step 3. Preparing Templates Folder
Add folder templates in myapp

Register myapp/templates in myproject/settings.py

os.path.join(BASE_DIR, 'myapp', 'template')
Press enter or click to view image in full size

Step 4. Set DEBUG and ALLOWED_HOSTS

Set DEBUG=False and ALLOWED_HOSTS to ‘127.0.0.1’ in myproject/settings.py

DEBUG = FalseALLOWED_HOSTS = [‘127.0.0.1’]

Step 5. Add 404.html file in myapp/templates folder

myapp/templates/404.html

Step 6. Update myapp/views.py

myapp/views.py

Step 7. Update myproject/urls.py
handler404 will override the default 404 page.

myproject/urls.py

Step 8. Run and Try it in browser

python manage.py runserver

try to access page that not available in app, such as 127.0.0.1/not_found.

--

--