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);