Миграции в Django
На предыдущем уроке был установлен Django, создан проект и приложение для мини-блога. Теперь настроим админ-панель. Для этого выполним миграции базы данных.
Миграции — это Python-файлы, позволяющие изменять структуру таблиц базы данных.
Чтобы применить миграции, в терминале, перейдя в директорию проекта командой cd MyBlock, выполните python manage.py makemigrations. Эта команда создаёт, но не применяет миграции. Это позволяет проверить код. После выполнения создаётся файл *.py (например, 0001_initial.py). Django по умолчанию использует SQLite3, но можно изменить настройки для других баз данных.
Для применения миграций выполните python manage.py migrate. Django отслеживает и применяет миграции к базе данных.
Создание суперпользователя
Для доступа к админ-панели создайте суперпользователя — пользователя с полными правами. В терминале выполните команду python manage.py createsuperuser. Система запросит имя пользователя, email (рекомендуется для восстановления пароля) и пароль. При создании пароля проверяется его сложность.
Запуск сервера и вход в админ-панель
Запустите проект командой python manage.py runserver. Админ-панель доступна по адресу http://127.0.0.1:8000/admin/. Введите имя пользователя и пароль суперпользователя.
Создание модели для записей блога
Данные, хранящиеся в базе данных и управляемые через админ-панель, представлены моделями. Каждая модель соответствует таблице в базе данных и создаётся на основе Python-класса.
В файле models.py приложения blog создадим модель Post:
- Заголовок: CharField (строка, max_length=100).
- Текст: TextField (большое текстовое поле).
- Автор: CharField (строка, max_length=100).
- Дата публикации: DateField (дата).
Внутри класса Post создадим мета-класс с атрибутами verbose_name (имя модели в единственном числе) и verbose_name_plural (во множественном числе). Также добавим метод __str__ для отображения записей в админ-панели.
Регистрация модели в админ-панели
Для отображения модели в админ-панели зарегистрируем её в admin.py. Импортируем Post из models.py и регистрируем с помощью декоратора @admin.register. Создадим класс PostAdmin, наследующий от admin.ModelAdmin, и определим атрибут list_display для указания полей, отображаемых в таблице админ-панели.
Миграции после создания модели
После создания модели выполните миграции: python manage.py makemigrations и python manage.py migrate.
Проверка работы админ-панели
Запустите сервер и проверьте админ-панель. Должна появиться таблица для управления записями блога. Поля модели должны отображаться корректно, с русскими подписями.
Вывод данных на сайт (будущее развитие)
В следующем уроке будет создана главная страница сайта и реализован вывод данных из базы данных.