Django Додати головну сторінку index
Головна Index сторінка
Наш проєкт потребує головної сторінки.
Головна сторінка буде цільовою, коли хтось відвідає кореневу папку проєкту.
Зараз ви отримуєте помилку під час відвідування кореневої папки вашого проєкту:
Почніть зі створення шаблону під назвою main.html
:
Main
my_tennis_club/members/templates/main.html
:
{% extends "master.html" %}
{% block title %}
My Tennis Club
{% endblock %}
{% block content %}
<h1>My Tennis Club</h1>
<h3>Members</h3>
<p>Check out all our <a href="members/">members</a></p>
{% endblock %}
Створити нове представлення
Потім створіть нове представлення під назвою main
, яке оброблятиме вхідні запити до кореневої частини проєкту:
my_tennis_club/members/views.py
:
from django.http import HttpResponse
from django.template import loader
from .models import Member
def members(request):
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):
mymember = Member.objects.get(id=id)
template = loader.get_template('details.html')
context = {
'mymember': mymember,
}
return HttpResponse(template.render(context, request))
def main(request):
template = loader.get_template('main.html')
return HttpResponse(template.render())
У main
представленні виконуються наступні дії:
- завантажується шаблон
main.html
- виводиться HTML, який відображається шаблоном
Додати URL
Тепер нам потрібно переконатися, що коренева URL-адреса вказує на правильне представлення.
Відкрийте файл urls.py
та додайте основне представлення до списку urlpatterns
:
my_tennis_club/members/urls.py
:
from 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'),
]
Виконати приклад »
Додати посилання назад до головної
На сторінці учасників відсутнє посилання на головну сторінку, тож додамо це в шаблон all_members.html
у блоці content
:
Приклад
my_tennis_club/members/templates/all_members.html
:
{% extends "master.html" %}
{% block title %}
My Tennis Club - List of all members
{% endblock %}
{% block content %}
<p><a href="/">HOME</a></p>
<h1>Members</h1>
<ul>
{% for x in mymembers %}
<li><a href="details/{{ x.id }}">{{ x.firstname }} {{ x.lastname }}</a></li>
{% endfor %}
</ul>
{% endblock %}
Виконати приклад »
Якщо ви виконали всі кроки на своєму комп’ютері, ви можете побачити результат у своєму браузері: 127.0.0.1:8000/
.
Якщо сервер не працює, його потрібно запустити знову за допомогою команди runserver
:
py manage.py runserver