1. Введение в Django: установка, создание проекта и архитектура MVT
Введение в Django: установка, создание проекта и архитектура MVT
Добро пожаловать в курс «Основы веб-разработки на Django». Если вы читаете эту статью, значит, вы решили освоить один из самых мощных, популярных и востребованных веб-фреймворков в мире Python. Django используется такими гигантами, как Instagram, Pinterest, Mozilla и National Geographic. Но почему он так популярен?
В этой первой статье мы разберем философию Django, его архитектуру, подготовим рабочее окружение и создадим ваш первый веб-проект.
Что такое Django и философия «Batteries Included»
Django — это высокоуровневый веб-фреймворк на языке Python, который поощряет быструю разработку и чистый, прагматичный дизайн. Он был создан разработчиками новостного издания в Канзасе (Lawrence Journal-World) для того, чтобы успевать публиковать новости в сжатые сроки. Отсюда и главный слоган: «Веб-фреймворк для перфекционистов с дедлайнами».
Одной из ключевых особенностей Django является принцип «Batteries Included» (Батарейки в комплекте). Это означает, что «из коробки» вы получаете множество инструментов, которые в других фреймворках пришлось бы искать и настраивать отдельно:
* ORM (Object-Relational Mapping): Позволяет работать с базой данных, используя код Python вместо SQL. * Административная панель: Готовый интерфейс для управления контентом. * Аутентификация: Система регистрации, входа и управления правами пользователей. * Маршрутизация URL: Гибкая система обработки адресов. * Безопасность: Защита от SQL-инъекций, XSS, CSRF и других атак.
Архитектура MVT: Model-View-Template
Большинство веб-фреймворков используют архитектуру MVC (Model-View-Controller). Django использует слегка измененную концепцию, которую называют MVT (Model-View-Template). Понимание этой структуры критически важно для дальнейшей работы.
Давайте разберем каждый компонент:
!Схема обработки запроса в архитектуре MVT
Сравнение с MVC
Часто возникает путаница в терминологии. Вот как MVT соотносится с классическим MVC:
| Концепция MVC | Концепция Django (MVT) | Описание | | :--- | :--- | :--- | | Model | Model | Работа с данными и бизнес-логикой данных | | View | Template | Отображение данных (HTML) | | Controller | View | Обработка запроса и выбор того, что показать |
В Django сам фреймворк берет на себя часть задач Контроллера (маршрутизацию запросов), оставляя разработчику написание логики во View.
Подготовка окружения
Перед тем как писать код, необходимо подготовить почву. Мы будем использовать виртуальное окружение. Это изолированная папка, в которой будут храниться библиотеки именно для этого проекта. Это позволяет избежать конфликтов версий между разными проектами.
Шаг 1: Установка Python
Убедитесь, что у вас установлен Python версии 3.8 или выше. Проверить это можно командой в терминале:
Шаг 2: Создание виртуального окружения
Создайте папку для вашего проекта и перейдите в нее. Затем выполните команду для создания виртуального окружения (назовем его venv):
Для Windows:
Для macOS/Linux:
Шаг 3: Активация виртуального окружения
После создания окружения его нужно активировать. После активации перед строкой ввода в терминале появится надпись (venv).
Для Windows:
Для macOS/Linux:
Шаг 4: Установка Django
Теперь, находясь внутри изолированного окружения, установим Django с помощью пакетного менеджера pip:
Создание первого проекта
В терминологии Django есть четкое разделение между Проектом (Project) и Приложением (App).
* Проект — это глобальная конфигурация вашего веб-сайта. Он может содержать несколько приложений. * Приложение — это модуль, выполняющий конкретную задачу (например, блог, форум, магазин).
Инициализация проекта
Для создания проекта используется утилита django-admin. Давайте назовем наш проект config (это распространенная практика, чтобы отделить настройки от приложений) или myproject. Для примера используем mysite.
Выполните команду:
> Обратите внимание на точку . в конце команды. Она говорит Django создать проект в текущей папке, а не создавать новую вложенную папку. Это делает структуру удобнее.
Структура файлов
После выполнения команды вы увидите следующие файлы:
Разберем, за что отвечает каждый файл:
* manage.py: Это утилита командной строки, с помощью которой вы будете взаимодействовать с проектом (запускать сервер, создавать миграции и т.д.). Она является оберткой над django-admin.
* mysite/: Это пакет Python вашего проекта.
* __init__.py: Пустой файл, который говорит Python, что эта директория является пакетом.
* settings.py: Самый важный файл. Здесь хранятся все настройки: подключение к базе данных, список установленных приложений, настройки безопасности, языковые параметры.
* urls.py: «Оглавление» вашего сайта. Здесь вы связываете URL-адреса (например, /about/) с конкретными View-функциями.
* wsgi.py и asgi.py: Точки входа для веб-серверов при развертывании сайта в интернете (deploy). WSGI — старый стандарт, ASGI — новый, поддерживающий асинхронность.
Запуск сервера разработки
Django поставляется с легким веб-сервером для разработки, чтобы вы могли видеть результаты своей работы без настройки настоящего хостинга.
Выполните команду:
Если все прошло успешно, вы увидите вывод, похожий на этот:
Теперь откройте браузер и перейдите по адресу http://127.0.0.1:8000/. Вы должны увидеть приветственную страницу Django с изображением ракеты. Это означает, что установка прошла успешно!
!Приветственная страница Django после успешного запуска сервера
Создание приложения (App)
Как мы говорили ранее, проект состоит из приложений. Давайте создадим наше первое приложение, например, blog.
Остановите сервер (нажмите Ctrl+C в терминале) и выполните:
Появится новая папка blog со своей структурой:
* models.py: Здесь мы будем описывать структуру данных.
* views.py: Здесь будет логика обработки запросов.
* admin.py: Настройки для админ-панели.
* tests.py: Файл для написания тестов.
Регистрация приложения
Создать приложение недостаточно, нужно «рассказать» о нем проекту. Для этого откройте файл mysite/settings.py, найдите список INSTALLED_APPS и добавьте туда название вашего приложения:
Теперь Django знает о существовании приложения blog и будет учитывать его модели и настройки.
Заключение
В этой статье мы заложили фундамент для вашего будущего веб-разработчика. Мы разобрали архитектуру MVT, установили Django, создали проект и первое приложение. Это база, на которой строится любой сайт на Django, будь то простой блог или сложная социальная сеть.
В следующей статье мы углубимся в работу с данными: научимся создавать модели, проводить миграции и работать с базой данных через Django ORM.