Мини-блог на Django 4: Урок 1 (Python)

Этот урок посвящен созданию мини-блога с использованием фреймворка 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) — Модель-Представление-Шаблон. Это разделение на три слоя:

  1. Модель (Model): Источник данных, представляющий собой таблицу в базе данных (Django поддерживает различные СУБД: SQL, SQLite, Oracle, PostgreSQL). Модель определяет структуру данных и методы для работы с ними (создание, чтение, обновление, удаление).
  2. Представление (View): Обрабатывает HTTP-запросы, получает данные из модели, обрабатывает их и формирует HTTP-ответ.
  3. Шаблон (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, создали проект и приложение для записей блога. В следующих уроках мы продолжим разработку, создадим модели, представления и шаблоны для нашего мини-блога.

Что будем искать? Например,программа