Create header and footer template inherittance in django

Hi folks, I hope you all are doing well and improving your technical skills daily. Allow me to help you to increase a bit of knowledge by providing a tutorial on how we can add header and footer templates on each page in Django. Now why wait let’s take a dive into the tutorial, at the end of this I am sure you guys can do this by yourself.

master.html

header:

<title>{% block title %} {% endblock title %}</title>
    <nav class="navbar navbar-expand-lg navbar-light bg-light">
        <a class="navbar-brand" href="#">Navbar</a>
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
          <span class="navbar-toggler-icon"></span>
        </button>

        <div class="collapse navbar-collapse" id="navbarSupportedContent">
          <ul class="navbar-nav mr-auto">
          
            <li class="nav-item active">
              <a class="nav-link" href="/">Home</a>
            </li>

            <li class="nav-item">
              <a class="nav-link" href="/contact">Contact</a>
            </li>       

            <li class="nav-item">
              <a class="nav-link" href="/about">About</a>
            </li>

            <li class="nav-item">
                <a class="nav-link" href="/blog">Blog</a>
            </li>

          </ul>

        </div>
      </nav>


{% block body %} {% endblock body %}


footer:

<p>footer</p>
index.html

{% extends 'master.html' %}

{% block title %}Home{% endblock title %}

{% block body %}

this is my body

{% endblock body %}
urls.py

urlpatterns = [
    path('', views.index, name='home'),
    path('about', views.about, name='about'),
    path('contact', views.contact, name='contact'),
    path('blog', views.blog, name='blog'),
]
views.py

def index(request):
    obj = {
        'page' : 'Home',
    }
    return render(request, 'index.html', obj);

def about(request):
    obj = {
        'page' : 'About Us',
    }
    return render(request, 'about.html', obj);

def contact(request):
    obj = {
        'page' : 'Contact Us',
    }
    return render(request, 'contact.html', obj);

def blog(request):
    obj = {
        'page' : 'Blog',
    }
    return render(request, 'blog.html', obj);

 

 

 

 

 

 

 

 

Leave a Reply