Django Web Framework на Python: как работает
medium

Django Web Framework на Python: как работает

Полезный фреймворк для веб-разработки на Python

Это статья об очень популярном фреймворке, на котором сейчас делают множество веб-сервисов, приложений и систем. Статья будет полезна тем, кто немного разбирается в вебе и хочет погрузиться глубже. 

Для начала основные понятия. Если термины знакомы, пропускайте.

Веб-сервис или веб-приложение — это программа, которая делает что-то полезное через ваш браузер. Поиск Яндекса — это веб-сервис. Какой-нибудь онлайн-словарь или переводчик — тоже веб-сервис.

Веб-сервис отличается от обычной программы тем, что все вычисления происходят на сервере, а результат вычислений возвращается пользователям в виде веб-страницы. Когда вы задаёте вопрос Яндексу, этот вопрос улетает в огромный яндексовый дата-центр, там на основе огромного количества данных готовится ответ, и он прилетает вам в виде компактной простой странички. 

Веб-сервисы используют какие-то внутренние языки: на серверах, которые обрабатывают ваши запросы, работают программы, которые обеспечивают все нужные вычисления. Эти программы написаны на каких-то языках. Некоторые языки лучше приспособлены для задач веб-приложений, другие похуже. 

Один из популярных языков веб-приложений — PHP. Его недолюбливают, но на нём сделана существенная часть веб-сервисов. Прочитайте о PHP в нашей статье

Другой язык, набравший популярность в конце 2010-х — Python.

Фреймворк — это надстройка над языком программирования, которая упрощает разработку. Внутри фреймворка собрано много готовых конструкций, которые программисту не нужно делать самому — вместо этого он использует команды фреймворка и сразу получает результат. Можно представить, что фреймворк — это набор полуфабрикатов, из которых можно приготовить блюдо.

Что такое Django

Django — это фреймворк для быстрой разработки сайтов и приложений на Python. Это значит, что с ним можно будет собрать готовый сайт или веб-приложение быстрее, проще и аккуратнее, чем писать весь код самому с нуля. Для этого разработчику сразу доступно такое:

  • встроенный веб-сервер, чтобы не ставить его отдельно;
  • механизмы авторизации пользователей;
  • подключение и работа с базами данных;
  • шаблоны страниц и простых веб-интерфейсов;
  • простые способы выводить, наполнять, шаблонизировать и автоматизировать отдачу веб-страниц;
  • встроенная система кеширования, чтобы снизить нагрузку на сайт;
  • мультиязычность, когда на сайте есть переключатель языков.

Можно представить, что Django — это библиотека элементов, с помощью которых можно довольно быстро собрать работающее веб-приложение со сложной логикой. Тут авторизация, там вывод страниц, тут администраторская панель, тут запросы в базу данных — всё это соединяете, и за короткое время у вас всё работает. 

Встроенная панель управления

Большой плюс Django в том, что в него встроена своя панель управления сайтом. Это значит, что разработчику не нужно писать свою админку — она уже доступна сразу после запуска сайта.

В панели управления сайтом можно:

  • настраивать структуру сайта;
  • управлять пользователями;
  • работать с фильтрами и выгрузить все необходимые данные;
  • поправить код и сразу увидеть изменения на сайте;
  • работать с базой данных сайта;
  • смотреть статистику.

Так как админка тоже написана на Python, то её можно тоже оптимизировать или переделать под задачи проекта. В этом сила Django — зная Python, вы можете настроить что угодно и как угодно.

Управление пользователями
Настройки оповещений
Можно установить авторскую панель поверх основной админки и получить больше возможностей для управления сайтом

Как работает Django

Работа Django основана на модели MVT — Model-View-Template, что переводится на русский как «Модель — Представление — Шаблон». Смысл этой модели в том, чтобы разделить логику работы сайта, внешний вид страниц и реакции на действия пользователей.

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

Представление занимается тем, что подготавливает данные, которые должен увидеть пользователь, и отправляет их в нужные места, например в шаблоны. Ещё задача представления — принимать запросы от пользователя и как-то на них реагировать, например что-то делать после нажатия разных кнопок на сайте.

Шаблон — это каркас HTML-страницы, который потом можно наполнить разным контентом. В шаблонах обычно прописывают типовые страницы, экраны и элементы, с которыми работает пользователь. Например, вот пример шаблона, который выведет все лучшие спортивные команды сезона (которые возьмёт из массива best_teams):

## filename: best/templates/best/index.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Home page</title>
</head>
<body>
  {% if best_teams %}
    <ul>
      {% for team in best_teams %}
        <li>{{ team.team_name }}</li>
      {% endfor %}
    </ul>
  {% else %}
    <p>No teams are available.</p>
  {% endif %}
</body>
</html>

Плюсы фреймворка

Скорость разработки. Django с самого начала создавался как фреймворк для быстрой сборки. За пару дней реально собрать на нём рабочую версию сайта, протестировать её и сразу понять, что делать дальше.

Масштабирование. В Django почти всё основано на модулях. Если нужно расширить сайт или масштабироваться под посещение миллиона человек в день, то можно просто одни модули заменить другими. Другие модули при этом даже не заметят, что на сайте что-то поменялось.

Безопасность. В Django встроено много готовых решений для безопасной работы: система аутентификации, защита от инъекций кода, межсайтовых запросов, подмены заголовка хоста и от других потенциальных уязвимостей.

Библиотеки и расширения. Если чего-то нет в Django — это можно поставить отдельной библиотекой: новую админку, плагин для работы с биометрическими данными или валидатор полей в формах.

Когда лучше без Django

Django хорош, когда вам нужно собрать большой сайт со множеством возможностей. Если же вы хотите просто вести блог или сделать себе сайт с портфолио, лучше выбрать что попроще: установить Вордпресс или собрать всё на Бутстрапе.

Что написано на Django

Сейчас на Django работает много популярных проектов, например:

  • YouTube;
  • Google (для вывода результатов по шаблону);
  • Dropbox;
  • Quora;
  • Mozilla;
  • Spotify;
  • Reddit.

Django можно использовать везде, где есть большая база данных и много пользователей. 

С чего начать

Если любите изучать всё в первоисточнике — сходите на официальный сайт Django.

Если нужна вся документация на русском — почитайте django.fun или на сайте разработчиков Mozilla.

Если хотите попробовать Django в деле без установки на свой компьютер — используйте онлайн-версию.

Художник:

Алексей Сухов

Корректор:

Ирина Михеева

Вёрстка:

Кирилл Климентьев

Соцсети:

Виталий Вебер

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Вам может быть интересно
medium
[anycomment]
Exit mobile version