Loading lesson path
Our project needs a main page. The main page will be the landing page when someone visits the root folder of the project. Now, you get an error when visiting the root folder of your project: 127.0.0.1:8000/. Start by creating a template called main.html
Formula
Main my_tennis_club/members/templates/main.html{% extends "master.html" %}{% block title %}{% endblock %}{% block content %}Formula
< h1 > My Tennis Club </h1 >Formula
< h3 > Members </h3 >Formula
< p > Check out all our < a href ="members/"> members </a ></p >{% endblock %}Then create a new view called main, that will deal with incoming requests to root of the project:
Formula
my_tennis_club/members/views.pyfrom django.http import HttpResponse from django.template import loader from .models import Member
def members(request):Formula
mymembers = Member.objects.all().values()
template = loader.get_template('all_members.html')context = {
'mymembers': mymembers,
}
return HttpResponse(template.render(context, request))def details(request, id):Formula
mymember = Member.objects.get(id = id)
template = loader.get_template('details.html')context = {
'mymember': mymember,
}
return HttpResponse(template.render(context, request))def main(request):Formula
template = loader.get_template('main.html')return HttpResponse(template.render())The main view does the following: loads the main.html template. Outputs the HTML that is rendered by the template.
Now we need to make sure that the root url points to the correct view. Open the urls.py file and add the main view to the urlpatterns list:
Formula
my_tennis_club/members/urls.pyfrom django.urls import path from . import views
urlpatterns = [ path('', views.main, name='main'), path('members/', views.members, name='members'), path('members/details/<int:id>', views.details, name='details'), ]
The members page is missing a link back to the main page, so let us add that in the all_members.html template, in the content block:
Example my_tennis_club/members/templates/all_members.html
{% extends "master.html" %}{% block title %}Formula
My Tennis Club - List of all members{% endblock %}{% block content %}<p><a href="/">HOME</a></p>
Formula
< h1 > Members </h1 ><ul>
{% for x in mymembers %}
<li><a href="details/"> </a></li>
{% endfor %}</ul>
{% endblock %}If you have followed all the steps on your own computer, you can see the result in your own browser: 127.0.0.1:8000/. If the server is down, you have to start it again with the runserver command: python manage.py runserver