Для того чтобы отобразить содержимое нашей базы данных на домашней странице, мы должны соединить наши представления, шаблоны и URL. Мы уже знакомились с этим в предыдущем модуле, теперь эта схема должна вам казаться знакомой.
Давайте начнем с представлений. В прошлом модуле мы использовали встроенный общий вид TemplateView для отображения файла шаблона домашней страницы. Теперь мы хотим перечислить содержимое нашей модели базы данных, для этого нам нужно выполнить запрос и передать его содержимое в шаблон.
В файл orm_method/views.py введите приведенный ниже код:
from django.shortcuts import render
from orm_method.models import Worker
def index(request):
people = Worker.objects.all()
return render(request, "index.html", {"people": people})
В функции index() мы получаем все данные в объект people с помощью метода Worker.objects.all() и затем передаем их в шаблон index.html.
Наше представление завершено, теперь нам нужно настроить наши URL и сделать наш шаблон.
Создайте новую директорию шаблонов под названием templates. PyCharm Professionals создает эту папку при создании проекта. Не забываем проверять и обновлять DIRS в нашем файле Course_SecondProject/settings.py, чтобы Django знал, что нужно искать в этой директории шаблоны:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR / 'templates'], # указываем путь к каталогу с шаблонами
# ...
},
]
Cоздайте новый файл с именем templates/index.html.
Функция представления index возвращает нам контекстную переменную people, которую мы можем перебирать с помощью встроенного тега шаблона for.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Django - SecondProject</title>
</head>
<body>
<table>
{% for person in people %}
<tr>
<td>{{ person.id }}</td>
<td>{{ person.first_name }}</td>
<td>{{ person.last_name }}</td>
<td>{{ person.age }}</td>
<td>{{ person.created }}</td>
<td>{{ person.work_experience }}</td>
</tr>
{% endfor %}
</table>
</body>
</html>
Последний шаг - это настройка наших URL.
Начнем с файла Course_SecondProject/urls.py, в который мы включим наше приложение orm_method и добавим include во второй строке:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('orm_method.urls'))
]
Затем создайте новый файл urls.py в приложении orm_method и добавьте в него следующие маршруты:
from django.urls import path
from orm_method import views
urlpatterns = [path("", views.index, name="index"), ]
Перезапустите сервер с помощью python manage.py runserver и перейдите на нашу домашнюю страницу(http://127.0.0.1:8000), на которой теперь отображаются все наши работники.
Если вдруг у вас появились трудности, смотрите или клонируйте код с ГитХаба - https://github.com/Permin0ff/Course_SecondProject_2