Продвинутый Django 5 для продолжающих

Прогресс по курсу:  0/193

3.2 Подготовка проекта и установка Debug Toolbar, генерация данных
2 из 2 шагов пройдено

Подготовка проекта

Для работы с индексами в PostgreSQL давайте продолжим работу над нашим приложением hr из прошлого модуля по ORM. Внесем немного изменений в модели, а именно уберем модель Compensation и сделаем не обязательными для заполнения поля department и contact, для более простого заполнения таблицы Employee. А также добавим поле about для добавление информации о сотруднике.

from django.db import models
from django.utils import timezone



class Contact(models.Model):
    phone = models.CharField(max_length=50, unique=True)
    address = models.CharField(max_length=50)

    def __str__(self):
        return self.phone


class Department(models.Model):
    name = models.CharField(max_length=255)
    description = models.TextField(null=True, blank=True)

    def __str__(self):
        return self.name


class Employee(models.Model):
    first_name = models.CharField(max_length=100)
    last_name = models.CharField(max_length=100)
    about = models.CharField(max_length=10000)
    age = models.SmallIntegerField(null=True)
    created = models.DateTimeField(default=timezone.now)
    work_experience = models.SmallIntegerField(default=0, null=True)
    contact = models.OneToOneField(Contact, on_delete=models.CASCADE, null=True)
    department = models.ForeignKey(Department, on_delete=models.CASCADE, default=None, null=True)


    def __str__(self):
        return f'{self.first_name} {self.last_name}'

Следующим шагом определим наши маршруты:

В urls.py проекта добавим

urlpatterns = [
    path("admin/", admin.site.urls),
    path("", include("hr.urls")),  # new
]

А в приложении hr создадим urls.py и добавим в него:

from django.urls import path
from .views import homePageView

urlpatterns = [path("", homePageView, name="home"), ]

 Добавим в views.py приложения hr добавим:

from django.shortcuts import render
from .models import Employee


def homePageView(request):
    employees = Employee.objects.filter(about='Test')
    return render(request, 'list.html', {'employees': employees})

И в папку шаблонов добавим шаблон list.html следующего содержания:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Test index PostgreSQL</title>
</head>
<body>
    {{ employees }}
</body>
</html>

 

Django Debug Toolbar

Рассмотрим инструменты, которые представляет данная панель:

  • Version: Предоставляет версию Django, которую мы используем.
  • Time: Сообщает время, затраченное на загрузку веб-страницы.
  • Setting: Показывает настройки страницы.
  • Request: Показывает все запросы — views, файлы, куки и т.д.
  • SQL: Список запросов к базе данных.
  • Static Files: Предоставляет информацию о статических файлах.
  • Templates: Предоставляет информацию о шаблонах.
  • Cache: Сообщает информацию о существующем кэш.
  • Loggin: Показывает количество зарегистрированных логов.

 

Установка Debug Toolbar в Django

Теперь установим библиотеку и настроим все необходимое для нее.

1) Установка библиотеки

Для установки django-debug-toolbar, используем команду pip install. Запустите следующий код в терминале/оболочке ОС:

pip install django-debug-toolbar

2) Добавление в INSTALLED_APPS

В settings.py добавьте следующую строку в раздел INSTALLED_APPS.

Проверьте, что бы debug_toolbar был добавлен после django.contrib.staticfiles.


INSTALLED_APPS = [
    ...
    'debug_toolbar',
]

Также убедитесь, что в файле settings.py присутствует следующая строка STATIC_URL = '/static/'. Обычно она находится в конце модуля и не требует добавления.

Чтобы использовать Debug Toolbar, мы должны импортировать его пути. Следовательно, в urls.py добавьте код:

import debug_toolbar
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path("admin/", admin.site.urls),
    path("", include("hr.urls")),
    path('__debug__/', include(debug_toolbar.urls)),  # new
]

4) Подключение MiddleWare

Добавьте middleware панели инструментов debug_toolbar.middleware.DebugToolbarMiddleware, в список MIDDLEWARE в settings.py:

...
MIDDLEWARE = [
    ...
    'debug_toolbar.middleware.DebugToolbarMiddleware',
]
...

5) Упоминание INTERNAL_IPS

Django Debug Toolbar отображается только в том случае, если в списке INTERNAL_IPS есть IP приложения. Для разработки на локальном компьютере добавьте в список IP 127.0.0.1.

# debug_tool/settings.py
...
INTERNAL_IPS = [
    '127.0.0.1',
]

Если списка INTERNAL_IPS еще нет, добавьте его в конец settings.py. На этом мы закончили подключение панель отладки, теперь проверим как она работает.

Выполним makemigrations и migrate и перейдем по адресу http://127.0.0.1:8000

Мы видим что наш проект работает и наша панель отображается корректно.


Будьте вежливы и соблюдайте наши принципы сообщества. Пожалуйста, не оставляйте решения и подсказки в комментариях, для этого есть отдельный форум.
Оставить комментарий
Нет обсуждений. Начните первое.