Этот урок посвящен созданию мини-блога с использованием фреймворка Django и языка Python. Мини-блог будет содержать главную страницу со списком записей (заголовок и краткое описание), возможность просмотра каждой записи на отдельной странице, раздел комментариев под каждой записью и возможность ставить лайки. Это упрощенный аналог Twitter.
Что такое Django?
Django — высокоуровневый Python web-framework, позволяющий быстро создавать безопасные и поддерживаемые веб-сайты. Его создали разработчики одной газеты для публикации новостей в интернете. Сейчас Django 4 — мощный и востребованный инструмент, часто упоминаемый в вакансиях разработчиков.
Главное преимущество Django — возможность создавать сайты из компонентов, подобно конструктору LEGO. Это позволяет менять и модифицировать части сайта без переписывания всего проекта.
Преимущества Django
Django обладает следующими преимуществами:
- «Все в коробке»: Большинство необходимых функций уже реализовано и доступно для использования.
- Универсальность: Подходит для различных типов сайтов: лендинги, интернет-магазины, системы управления контентом и другие.
- Безопасность: Встроенные механизмы безопасности помогают избежать распространенных ошибок. Например, встроенная система управления учетными записями пользователей с гибкими настройками доступа.
- Масштабируемость: Независимость компонентов позволяет легко масштабировать проект под растущую нагрузку.
- Переносимость: Django работает на разных платформах (Linux, Windows, macOS) и поддерживается многими веб-хостингами.
Архитектура Django (MVT)
Django использует архитектуру MVT (Model-View-Template) — Модель-Представление-Шаблон. Это разделение на три слоя:
- Модель (Model): Источник данных, представляющий собой таблицу в базе данных (Django поддерживает различные СУБД: SQL, SQLite, Oracle, PostgreSQL). Модель определяет структуру данных и методы для работы с ними (создание, чтение, обновление, удаление).
- Представление (View): Обрабатывает HTTP-запросы, получает данные из модели, обрабатывает их и формирует HTTP-ответ.
- Шаблон (Template): Определяет структуру и внешний вид веб-страницы, отображая данные, полученные от представления.
Начало работы: создание проекта
Создадим новый проект с виртуальным окружением. Создадим папку для проекта (например, mini-blog) и внутри нее — виртуальное окружение. Затем установим Django:
pip install django
Создадим проект Django:
django-admin startproject myblog
В папке myblog появятся файлы проекта. Ключевые из них:
- manage.py: Инструмент для управления проектом (запуск сервера, миграции, создание приложений).
- myblog/settings.py: Файл настроек проекта (язык, временная зона, подключение баз данных и др.). Изменим язык на русский:
LANGUAGE_CODE = 'ru-ru'
TIME_ZONE = 'Europe/Moscow'
- myblog/urls.py: Настройка URL-адресов.
- myblog/wsgi.py и myblog/asgi.py: Настройка связи с веб-сервером.
Запустим сервер:
python manage.py runserver
Теперь можно открыть проект в браузере по адресу http://127.0.0.1:8000/.
Создание приложения «blog»
Создадим приложение для записей блога:
python manage.py startapp blog
В папке blog появятся файлы приложения:
- models.py: Определение моделей данных (например, модель Post для записей).
- views.py: Обработка запросов.
- admin.py: Настройка админ-панели.
- apps.py: Конфигурация приложения.
Зарегистрируем приложение в myblog/settings.py в секции INSTALLED_APPS:
INSTALLED_APPS = [
# ...
'blog.apps.BlogConfig',
# ...
]
В этом уроке мы установили Django, создали проект и приложение для записей блога. В следующих уроках мы продолжим разработку, создадим модели, представления и шаблоны для нашего мини-блога.