Для того, чтобы освоить тот или иной язык программирования, пользователю требуется изучать разнообразные составляющие программных кодов. Огромным спросом сегодня пользуется Python. Это – способ «общения» разработчика с компьютером. Относится к высокоуровневому.
Данный программный язык используется в:
- IT-технологиях;
- разработке игр и приложений;
- веб-разработке;
- парсинге;
- машинном обучении.
Это – простой и интересный вариант как для новичков, так и для продвинутых программистов. У соответствующего языка имеется такой элемент как Django. О нем пойдет речь в данной статье. Предложенная информация окажется полезной для всех, кто решил программировать на Питоне (далее – py).
Django – определение
Django – это py фреймворк. Относится к высокоуровневому. Позволяет осуществлять создание и поддержку безопасных веб сайтов. Характеризуется как свободный. Использует при работе шаблон проектирования MVC. Поддержка проекта осуществляется компанией Django Software Foundation.
При создании сайта на Django py задействуется одно или несколько приложений. Их лучше делать отчуждаемыми, обособленными, подключаемыми. Это – ключевое отличие фреймворка от других «собратьев».
В процессе работы использует собственный ORM. В нем модель информации описывается py классами. По соответствующим элементам будет происходить дальнейшая генерация базы данных.
Фреймворк – это
Django py – это FrameWork. Так называют особую структуру, на базе которой удается создавать тот или иной продукт. Некий шаблон, позволяющий создавать софт и веб-странички с минимальными усилиями. Посредством фреймворков разработка осуществляется в разы прозе и быстрее, чем при написании кодов «с нуля».
Framework – набор шаблонов и заготовок. Каркас проекта, который необходимо реализовать. На него пользователи будет «нанизывать»:
- функции;
- фишки;
- интерфейс;
- дополнительные возможности.
Все, что останется разработчику при создании сайта – это пройтись по всем блокам имеющегося кода и добавить туда недостающие элементы.
Преимущества Джанго
Django py – фреймворк, который пользуется спросом не только у новичков, но и у продвинутых программистов. С его помощью производится создание софта, который будет:
- Полным. Джанго – это принцип «все включено». В нем есть почти все, что только может задумать для реализации программер. Элементы отлично взаимодействуют между собой, потому что включены в одну «коробку».
- Разносторонним. Django py используется для всех видов веб-страниц, включая системы управления контентом и социальные сети. Работает с любой клиентской средой, доставляет софт практически во всех существующих форматах.
- Безопасным. Среди основных преимуществ порталов, созданных посредством рассматриваемого фреймворка, выделяют высокий уровень безопасности. За счет готовых шаблонов программеры могут избежать распространенных ошибок при создании программных кодификаций.
- Масштабируемым. В процессе реализации Джанго задействует архитектуру типа shared-nothing. Это значит, что каждая ее часть не зависит от других. Ее очень легко заменить или откорректировать при необходимости. Django поддерживает масштабирование при увеличении трафика. Соответствующий результат достигает посредством добавления оборудования на любом уровне.
- Простым и удобным в сопровождении. Получаемый код является удобным. Здесь имеет место принцип DRY. Он предусматривает отсутствие дублирования. Как результат – объем кода сокращается, повышается его скорость обработки и реализации.
- Переносным. Django относится к функциям и дополнениям py, который обладает отличной оптимизацией и кроссплатформенностью. Соответственно, сайты и проекты, созданные этим фреймворком, тоже будут запускаться без труда на большинстве современных популярных операционных систем.
Готовые формы и шаблоны Джанго – это верный путь к созданию уникального, удобного и практичного app. Подойдет для работы как новичков, так и продвинутых разработчиков.
Немного истории
Ранее Питон не имел подобного универсального фреймворка. Его впервые установили в 2003 году. Создателем стала команда разработчиков, которая занималась обслуживание газетных веб-страничек. После того, как они создали несколько сайтов, задействованные элементы кодификаций использовались для будущих проектов. Это избавляло от лишней работы и нагрузки.
Соответствующий популярный «блок» кода преобразовался в проект под названием Django. В 2005 году у него образовалась открытая кодификация.
По сей день рассматриваемый py фреймворк совершенствуется и улучшается. Официальный открытый релиз состоялся в сентябре 2008 года. В 2020 году появилась относительно новая версия – 3.1. Каждое обновление включает в себя новые:
- функции;
- исправления обнаруженных ошибок;
- поддержку новых типов баз данных;
- шаблонизаторы;
- кеширование.
Теперь Джанго – это популярный и стремительно развивающийся проект совместного типа с открытым исходным кодов. К его совершенствованию привлечены тысячи разработчиков и пользователей. Несмотря на то, что происхождение framework вызывает некое отторжение, Django py стал универсальным элементом для создания совершенно любых веб-ресурсов.
Вопрос популярности
Серверные фреймворки не получают точной и окончательной оценки по своей популярности. Но программеры стараются рассчитать соответствующий показатель при помощи разнообразных проектов на GitHub и вопросов на StackOverflow.
Django используется для того, чтобы создать программу, расширение или веб-сайт, который будет универсальным и удобным. Анализ существующего контента, базирующего на соответствующем фреймворке, показывает – он достаточно популярен. Готовые проекты предусматривают огромное количество посетителей и приносят неплохой трафик.
Джанго py используется в:
- Instagram;
- Pinterest;
- Mozilla;
- National Geographic;
- MacArthur Foundation;
- Open Stack.
Все перечисленные готовые интернет проекты известны современным юзерам и находятся в активном обиходе. Поэтому в полезности и популярности фреймворка нет никаких поводов для сомнения.
О гибкости
Условно все frameworks можно разделить на гибкие и негибкие. Вторая категория – это такие «элементы кода», у которых имеется единственный правильный путь решения поставленной задачи. Поддерживают быстрое развертывание в определенной сфере. Метод решения хорошо реализуется и документируется. Но, если требуется решить проблемы за пределами основной области, могут возникать определенные трудности.
Гибкие фреймворки имеют меньше ограничений. Они позволяют разработчикам осуществлять поиск, а также задействовать подходящие инструменты для конкретных задач.
Джанго относят к «умеренно гибким» фреймворкам. Это – набор компонентов для обработки основной массы задач веб-разработки в сочетании с одним-двумя предпочтительных способами их применения. Подобная архитектура указывает на то, что пользователь может выбирать из нескольких функций что-то одно или добавлять поддержку совершенно новых возможностей.
Интерпретация кодификации
Если создается apps на основе Джанго, требуется выяснить, как будет выглядеть соответствующий код. В традиционной форме интернет странички или соответствующие приложения работают с HTTP-запросами от браузеров или иных клиентов. После получения заброса осуществляется разработка необходимых элементов. Опора обеспечивается за счет:
- URL-адреса;
- информации в POST;
- GET запросов.
Далее, в зависимости от поставленной проблемы, можно записывать или считывать материалы электронного типа из БД, а также производить иные манипуляции. Приложение даст интернет обозревателю ответ, создавая динамически HTML-страничку для дальнейшего отображения в HTML-шаблоне.
Sites from Django работают иначе. Сначала нужно провести группировку кода, который отвечает за обработку каждого шага в самостоятельные файлы:
- URLs. Чтобы упростить поставленную задачу, напишем отдельные функции для обработки каждой страницы в Сети. URL-маршрутизаторы перенаправляют HTTP-запросы в соответствующее представление на основе адресного запроса. Также подобное оборудование способно извлекать информацию в соответствии с имеющимися шаблонами. После осуществляется отображение оных в виде аргументов.
- View. Функция обработчика запросов (import views), которая сначала получает HTTP-запросы. Далее производит возврат ответов. Функция «отображение» обладает доступом к информации, необходимой для удовлетворения поставленных задач. Далее производится преобразование ответов в шаблоны при помощи модели.
- Models. Следующим важным моментом выступают модели. Это – объекты py, определяющие структуру данных приложения. Предоставляют механизмы для того, чтобы управлять и реализовывать запросы в базах данных.
- Templates. Это – тестовый файл, который мы получим вследствие применения кода. Документ определяет структуру или разметку странички с полями для подстановки. Последние задействованы для вывода текущего (актуального) содержимого.
Если сделать приложение на Джанго py, оно будет реализовывать структуру MVT.
Правильная отправка запроса в view
Теперь самое время рассмотреть отдельные «блоки» кода. Эта информаций поможет лучше понимать формы и шаблоны Django py.
Первая проблема, с которой может столкнуться разработчик – отправка запроса в правильный view. Сопоставление URL-адресов находится в файле urls. Py. В примере, который видели выше, сопоставитель отвечает за определение списка сопоставлений между маршрутами (конкретными URL-запросами), а также соответствующими функциями отображения. При получении HTTP-запроса, имеющего URL, который отвечает определенному шаблону, будет осуществляться вызов связанной функции отображения с последующей передачей запроса.
Если запустить код, объект urlpatterns будет служить списком функций path() или re_path(). Первый аргумент в обоих методах – это шаблон (маршрут), который будет сопоставлен. В path() скобки углового типа применяются для того, чтобы определить части URL, которые захватываются и передаются в функцию отображения в виде именованных аргументов. Re_path() задействует гибкий подход к сопоставлению шаблонов – регулярное выражение.
Второй аргумент, который удалось найти – это очередная функция, вызываемая при сопоставлении шаблона. Views.book_detail указывает на то, что функция имеет название book_detail(). Ее может найти система в модуле с именем views.
Обработка запроса
Отображения – это основа веб-приложения, которое загружается на сервер и принимает HTTP-запросы от клиентов. Далее происходит возврат соответствующих ответов. Между этим производится использование ссылок и других ресурсов Django py для доступа к базам данных, шаблонам и так далее.
Приведенный пример предусматривает следующие особенности:
- Минимальная функция представления index() могла быть вызвана сопоставителем адресов в предыдущем разделе.
- Упомянутый элемент получает HttpRequest в виде параметра.
- Происходит возврат объекта HttpResponse.
- Ответ просто возвращает строго запрограммированную строчку.
Создадим и определим функции при помощи ключевого слова def. У него будут именованные параметры, перечисляемые в скобках после имени «операции». Строку требуется завершить двоеточием.
Стоит обратить внимание на то, что отступы в строках кода крайне важны. Они помогают определять, какие строчки кода расположены внутри конкретного блока. Это – основной нюанс при работе с py.
Создание проекта
Если программист хочет create site при помощи Джанго, ему предстоит создавать проекты, каталоги и другие элементы. Создадим файл новой разработки. Для этого требуется:
- Открыть командную строку или терминал.
- Перейти в папку, где хочется разместить проект.
- Создать папку для нового сайта.
- Войти в соответствующий «объект» при помощи специальной команды. Она звучит как CD.
Теперь создадим папку (новую) при помощи Django-admin startproject. Для этого используется пример кода, приведенный ниже. После осуществляется вход в папку.
Задействованная команда создаст файловую структуру:
Python Manage используется для того, чтобы создавать приложения, работать с базами данных, а также запускать отладочный сервер (runserver). Это крайне полезный скрипт.
Приложение Каталог
Для того, чтобы создать приложение catalog, требуется прописать следующую команду:
Предварительно осуществляется поиск папки locallibrary. Команда выполняется из manage.py.
За счет соответствующей команды произойдет:
- создание новой папки;
- наполнение созданного объекта файлами различных частей приложения (models import, urls import path);
- образование пустого файла для того, чтобы Джанго и Питон могли распознать папку в виде модуля.
Но теперь требуется зарегистрировать папку с приложением.
Регистрационный вопрос
Для того, чтобы приложение можно было использовать в проекте, требуется его регистрация. Осуществляется это за счет добавления их «имен» в список installed_apps в настройках проекта.
Сначала требуется осуществить поиск и открытие файла locallibrary/locallibrary/settings.py, после – search installed_apps. Далее предстоит добавить новую строчку в конец списка.
Она указывает на файл конфигурации приложения (catalogConfig). Он создается в apps.py после реализации утилиты.
Настройки проекта
При использовании БД DQL дополнительное подключение элементов не требуется. В файле, с name settings.py хранятся некоторые настройки проекта. Пример – time_zone. Это – определение часового пояса.
Также стоит обратить внимание на:
- Secret_key. Это – секретный ключ Django. Используется для поддержки безопасности сайта. Меняется каждый раз, когда происходит получение соответствующей информации в ходе разработки утилиты.
- Debug. Отвечает за включение подробных сообщений об ошибках.
Далее остается подключить URL.
Подключение адреса
Для того, чтобы подключить URL, требуется:
1. Открыть urls.py.
2. Добавить строчки в самый конец файла.
3. Прописать код типа:
4. Завершить подключение при помощи следующего блока:
Теперь остается создать файл urls.py внутри папки catalog, а затем добавить следующий фрагмент:
Это необходимо для того, чтобы определить пустой urlpatterns. Здесь осуществляется добавление URL соотношений по мере разработки сайта.
Как быстро освоить Джанго
Чтобы разобрать в том, что собой представляет a href, views и другие элементы фреймворка, не обязательно заниматься самообразованием. Создавать проекты Django учат на специализированных курсах. Есть как дистанционные, так и очные занятия.
Всего за несколько месяцев (изредка – в течение года) пользователь сможет «с нуля» разобраться в изученном фреймворке, а также сможет создать проекты Django. По окончании обучения выдается сертификат.
<!DOCTYPE html>
<html dir="ltr" lang="ru-RU">
<head>
<meta charset="UTF-8" />
<meta http-equiv="x-ua-compatible" content="ie=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="profile" href="http://gmpg.org/xfn/11" />
<title>Все о Django: актуальная информация и создание первого приложения OTUS</title>
<!-- All in One SEO 4.5.2.1 - aioseo.com -->
<meta name="description" content="Для того, чтобы освоить тот или иной язык программирования, пользователю требуется изучать разнообразные составляющие программных кодов. Огромным спросом сегодня пользуется Python. Это – способ «общения» разработчика с компьютером. Относится к высокоуровневому. Данный программный язык используется в: IT-технологиях; разработке игр и приложений; веб-разработке; парсинге; машинном обучении. Это – простой и интересный вариант как для новичков, так" />
<meta name="robots" content="max-image-preview:large" />
<link rel="canonical" href="https://otus.ru/journal/vse-o-django-aktualnaya-informaciya-i-sozdanie-pervogo-prilozheniya/" />
<meta name="generator" content="All in One SEO (AIOSEO) 4.5.2.1" />
<script type="application/ld+json" class="aioseo-schema">
{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/otus.ru\/journal\/vse-o-django-aktualnaya-informaciya-i-sozdanie-pervogo-prilozheniya\/#article","name":"\u0412\u0441\u0435 \u043e Django: \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f OTUS","headline":"\u0412\u0441\u0435 \u043e Django: \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f","author":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"publisher":{"@id":"https:\/\/otus.ru\/journal\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2021\/10\/oj-1080x720-16.png","width":1080,"height":720},"datePublished":"2021-10-19T19:17:28+00:00","dateModified":"2021-10-19T19:17:29+00:00","inLanguage":"ru-RU","mainEntityOfPage":{"@id":"https:\/\/otus.ru\/journal\/vse-o-django-aktualnaya-informaciya-i-sozdanie-pervogo-prilozheniya\/#webpage"},"isPartOf":{"@id":"https:\/\/otus.ru\/journal\/vse-o-django-aktualnaya-informaciya-i-sozdanie-pervogo-prilozheniya\/#webpage"},"articleSection":"\u041f\u043e\u043b\u0435\u0437\u043d\u043e\u0435, Jango, Python"},{"@type":"BreadcrumbList","@id":"https:\/\/otus.ru\/journal\/vse-o-django-aktualnaya-informaciya-i-sozdanie-pervogo-prilozheniya\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/#listItem","position":1,"name":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430","item":"https:\/\/otus.ru\/journal\/","nextItem":"https:\/\/otus.ru\/journal\/vse-o-django-aktualnaya-informaciya-i-sozdanie-pervogo-prilozheniya\/#listItem"},{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/vse-o-django-aktualnaya-informaciya-i-sozdanie-pervogo-prilozheniya\/#listItem","position":2,"name":"\u0412\u0441\u0435 \u043e Django: \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f","previousItem":"https:\/\/otus.ru\/journal\/#listItem"}]},{"@type":"Organization","@id":"https:\/\/otus.ru\/journal\/#organization","name":"\u041e\u0442\u0443\u0441 \u043e\u043d\u043b\u0430\u0439\u043d-\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435","url":"https:\/\/otus.ru\/journal\/","sameAs":["https:\/\/www.youtube.com\/channel\/UCetgtvy93o3i3CvyGXKFU3g"],"contactPoint":{"@type":"ContactPoint","telephone":"+74999389202","contactType":"Customer Support"}},{"@type":"Person","@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author","url":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/","name":"A. Pavlenko","image":{"@type":"ImageObject","@id":"https:\/\/otus.ru\/journal\/vse-o-django-aktualnaya-informaciya-i-sozdanie-pervogo-prilozheniya\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/d4c499a104d7c2522fa41f89e6819499?s=96&d=mm&r=g","width":96,"height":96,"caption":"A. Pavlenko"}},{"@type":"WebPage","@id":"https:\/\/otus.ru\/journal\/vse-o-django-aktualnaya-informaciya-i-sozdanie-pervogo-prilozheniya\/#webpage","url":"https:\/\/otus.ru\/journal\/vse-o-django-aktualnaya-informaciya-i-sozdanie-pervogo-prilozheniya\/","name":"\u0412\u0441\u0435 \u043e Django: \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f OTUS","description":"\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043e\u0441\u0432\u043e\u0438\u0442\u044c \u0442\u043e\u0442 \u0438\u043b\u0438 \u0438\u043d\u043e\u0439 \u044f\u0437\u044b\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0438\u0437\u0443\u0447\u0430\u0442\u044c \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0435 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u043a\u043e\u0434\u043e\u0432. \u041e\u0433\u0440\u043e\u043c\u043d\u044b\u043c \u0441\u043f\u0440\u043e\u0441\u043e\u043c \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f Python. \u042d\u0442\u043e \u2013 \u0441\u043f\u043e\u0441\u043e\u0431 \u00ab\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u00bb \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0441 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u043c. \u041e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u0432\u044b\u0441\u043e\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u043c\u0443. \u0414\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432: IT-\u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f\u0445; \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0438\u0433\u0440 \u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439; \u0432\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435; \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0435; \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u043c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0438. \u042d\u0442\u043e \u2013 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043a\u0430\u043a \u0434\u043b\u044f \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432, \u0442\u0430\u043a","inLanguage":"ru-RU","isPartOf":{"@id":"https:\/\/otus.ru\/journal\/#website"},"breadcrumb":{"@id":"https:\/\/otus.ru\/journal\/vse-o-django-aktualnaya-informaciya-i-sozdanie-pervogo-prilozheniya\/#breadcrumblist"},"author":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"creator":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2021\/10\/oj-1080x720-16.png","@id":"https:\/\/otus.ru\/journal\/vse-o-django-aktualnaya-informaciya-i-sozdanie-pervogo-prilozheniya\/#mainImage","width":1080,"height":720},"primaryImageOfPage":{"@id":"https:\/\/otus.ru\/journal\/vse-o-django-aktualnaya-informaciya-i-sozdanie-pervogo-prilozheniya\/#mainImage"},"datePublished":"2021-10-19T19:17:28+00:00","dateModified":"2021-10-19T19:17:29+00:00"},{"@type":"WebSite","@id":"https:\/\/otus.ru\/journal\/#website","url":"https:\/\/otus.ru\/journal\/","name":"OTUS JOURNAL","description":"Blog about IT","inLanguage":"ru-RU","publisher":{"@id":"https:\/\/otus.ru\/journal\/#organization"}}]}
</script>
<!-- All in One SEO -->
<link rel='dns-prefetch' href='//otus.ru' />
<link rel='dns-prefetch' href='//fonts.googleapis.com' />
<link rel='stylesheet' id='wp-block-library-css' href='https://otus.ru/journal/wp-includes/css/dist/block-library/style.min.css?ver=6.4.7' type='text/css' media='all' />
<style id='classic-theme-styles-inline-css' type='text/css'>
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
</style>
<style id='global-styles-inline-css' type='text/css'>
body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}body .is-layout-flex > *{margin: 0;}body .is-layout-grid{display: grid;}body .is-layout-grid > *{margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
.wp-block-navigation a:where(:not(.wp-element-button)){color: inherit;}
:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
.wp-block-pullquote{font-size: 1.5em;line-height: 1.6;}
</style>
<link rel='stylesheet' id='wbcr-comments-plus-url-span-css' href='https://otus.ru/journal/wp-content/plugins/clearfy/components/comments-plus/assets/css/url-span.css?ver=2.2.0' type='text/css' media='all' />
<link rel='stylesheet' id='wpel-style-css' href='https://otus.ru/journal/wp-content/plugins/wp-external-links/public/css/wpel.css?ver=2.59' type='text/css' media='all' />
<link rel='stylesheet' id='ez-toc-css' href='https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/css/screen.min.css?ver=2.0.61' type='text/css' media='all' />
<style id='ez-toc-inline-css' type='text/css'>
div#ez-toc-container .ez-toc-title {font-size: 120%;}div#ez-toc-container .ez-toc-title {font-weight: 500;}div#ez-toc-container ul li {font-size: 95%;}div#ez-toc-container nav ul ul li {font-size: 90%;}
.ez-toc-container-direction {direction: ltr;}.ez-toc-counter ul{counter-reset: item ;}.ez-toc-counter nav ul li a::before {content: counters(item, ".", decimal) ". ";display: inline-block;counter-increment: item;flex-grow: 0;flex-shrink: 0;margin-right: .2em; float: left; }.ez-toc-widget-direction {direction: ltr;}.ez-toc-widget-container ul{counter-reset: item ;}.ez-toc-widget-container nav ul li a::before {content: counters(item, ".", decimal) ". ";display: inline-block;counter-increment: item;flex-grow: 0;flex-shrink: 0;margin-right: .2em; float: left; }
</style>
<link rel='stylesheet' id='contentberg-fonts-css' href='https://fonts.googleapis.com/css?family=Roboto%3A400%2C500%2C700%7CPT+Serif%3A400%2C400i%2C600%7CIBM+Plex+Serif%3A500' type='text/css' media='all' />
<link rel='stylesheet' id='contentberg-core-css' href='https://otus.ru/journal/wp-content/themes/contentberg/style.css?ver=1.8.3' type='text/css' media='all' />
<link rel='stylesheet' id='contentberg-lightbox-css' href='https://otus.ru/journal/wp-content/themes/contentberg/css/lightbox.css?ver=1.8.3' type='text/css' media='all' />
<link rel='stylesheet' id='font-awesome-css' href='https://otus.ru/journal/wp-content/themes/contentberg/css/fontawesome/css/font-awesome.min.css?ver=1.8.3' type='text/css' media='all' />
<script type="text/javascript" id="breeze-prefetch-js-extra">
/* <![CDATA[ */
var breeze_prefetch = {"local_url":"https:\/\/otus.ru\/journal","ignore_remote_prefetch":"1","ignore_list":["\/wp-admin\/"]};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/breeze/assets/js/js-front-end/breeze-prefetch-links.min.js" id="breeze-prefetch-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery.min.js" id="jquery-core-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery-migrate.min.js" id="jquery-migrate-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/lazysizes.js" id="lazysizes-js"></script>
<link rel="https://api.w.org/" href="https://otus.ru/journal/wp-json/" /><link rel="alternate" type="application/json" href="https://otus.ru/journal/wp-json/wp/v2/posts/2210" /><link rel='shortlink' href='https://otus.ru/journal/?p=2210' />
<link rel="alternate" type="application/json+oembed" href="https://otus.ru/journal/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fvse-o-django-aktualnaya-informaciya-i-sozdanie-pervogo-prilozheniya%2F" />
<link rel="alternate" type="text/xml+oembed" href="https://otus.ru/journal/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fvse-o-django-aktualnaya-informaciya-i-sozdanie-pervogo-prilozheniya%2F&format=xml" />
<script>var Sphere_Plugin = {"ajaxurl":"https:\/\/otus.ru\/journal\/wp-admin\/admin-ajax.php"};</script><link rel="icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-32x32.png" sizes="32x32" />
<link rel="icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-192x192.png" sizes="192x192" />
<link rel="apple-touch-icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-180x180.png" />
<meta name="msapplication-TileImage" content="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-270x270.png" />
<style type="text/css" id="wp-custom-css">
#menu-item-10406 .wpel-icon {
display: none;
}
#menu-item-10407 .wpel-icon {
display: none;
}
.otus-login-site a .wpel-icon {
display: none;
}
.menu-menju-navykov-container a .wpel-icon {
display: none;
}
.otus-login-site a
{
background: #ffd709;
border-radius: 12px;
color: #0f0f10;
font-size: 14px;
font-weight: 700;
line-height: 20px;
display: block;
text-align: center;
padding: 8px 25px;
}
.main-footer.dark {
background: linear-gradient(90deg, #a64fc5, #4f54e6);
border-color: transparent;
}
.main-footer.bold .copyright {
color: #fff;
}
.main-footer.bold .to-top i {
color: #fff;
}
.main-footer.bold .back-to-top {
color: #fff;
}
.nav__scroll {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
.scrollable-menu .menu {
display: flex;
}
.nav__scroll
{
background: linear-gradient(90deg, #a64fc5, #4f54e6);
}
.scrollable-menu .menu .menu-item {
flex: 0 0 auto;
padding: 15px 15px;
}
.scrollable-menu .menu .menu-item a {
color: #fff;
}
.nav__scroll::-webkit-scrollbar{background-color:#fff;height:5px;}
.nav__scroll::-webkit-scrollbar-thumb{background-color:#dcdcdc;}
.nav__scroll::-webkit-scrollbar-track{-webkit-border-radius:0;border-radius:0;background-color:#fff;}/
body {
min-width: 320px;
}
.banner-click img {
margin: 0 auto;
display: block;
}
.banner-click {
cursor: pointer;
}
.banner-footer-area {
margin-bottom: 20px;
}
.banner-left-area {
margin-top: 40px;
} </style>
<!--Start VDZ Yandex Metrika Plugin-->
<!-- Yandex.Metrika counter --><script type="text/javascript" >(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");ym(34531570, "init", {clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true, trackHash:true, ecommerce:"dataLayer"});</script>
<noscript><div><img src="https://mc.yandex.ru/watch/34531570" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter --><!--START ADD EVENTS FROM CF7--><script type='text/javascript'>document.addEventListener( 'wpcf7submit', function( event ) {
//event.detail.contactFormId;
if(ym){
//console.log(event.detail);
ym(34531570, 'reachGoal', 'VDZ_SEND_CONTACT_FORM_7');
ym(34531570, 'params', {
page_url: window.location.href,
status: event.detail.status,
locale: event.detail.contactFormLocale,
form_id: event.detail.contactFormId,
});
}
}, false );
</script><!--END ADD EVENTS FROM CF7-->
<!--End VDZ Yandex Metrika Plugin-->
</head>
<body class="post-template-default single single-post postid-2210 single-format-standard right-sidebar lazy-normal has-lb">
<div class="main-wrap">
<header id="main-head" class="main-head head-nav-below has-search-modal simple simple-boxed">
<div class="inner inner-head" data-sticky-bar="0">
<div class="wrap cf wrap-head">
<div class="left-contain">
<span class="mobile-nav"><i class="fa fa-bars"></i></span>
<div class="title">
<a href="https://otus.ru/journal/" title="OTUS JOURNAL" rel="home" data-wpel-link="internal">
<span class="text-logo"><img src="/journal/wp-content/themes/contentberg/img/logo_site.svg" alt="OTUS JOURNAL"></span>
</a>
</div>
</div>
<div class="navigation-wrap inline">
<nav class="navigation inline simple light" data-sticky-bar="0">
<div class="menu-rubriki-container"><ul id="menu-rubriki" class="menu"><li id="menu-item-109" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-cat-1 menu-item-109"><a href="https://otus.ru/journal/category/pro-it/" data-wpel-link="internal"><span>Про IT</span></a></li>
<li id="menu-item-113" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-cat-4 menu-item-113"><a href="https://otus.ru/journal/category/polza/" data-wpel-link="internal"><span>Полезное</span></a></li>
<li id="menu-item-114" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-cat-3 menu-item-114"><a href="https://otus.ru/journal/category/lifestyle/" data-wpel-link="internal"><span>Лайфстайл</span></a></li>
<li id="menu-item-10406" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10406"><a href="https://otus.ru/catalog/courses" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right"><span>Обучение</span><span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10407" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10407"><a href="https://otus.ru/about" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right"><span>Информация</span><span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </nav>
</div>
<div class="actions">
<div class="otus-login-site">
<a href="https://otus.ru/login/" target="_blank" data-wpel-link="external" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Войти<span class="wpel-icon wpel-image wpel-icon-6"></span></a>
</div>
<a href="#" title="Search" class="search-link"><i class="fa fa-search"></i></a>
</div>
</div>
</div>
</header> <!-- .main-head -->
<div class="nav nav_disable nav_colored nav_transparent course-categories__nav nav__scroll ">
<div class="container wrap">
<div class="links inline simple light scrollable-menu">
<div class="menu-menju-navykov-container"><ul id="menu-menju-navykov" class="menu"><li id="menu-item-10413" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10413"><a href="https://otus.ru/categories/programming/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Программирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10414" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10414"><a href="https://otus.ru/categories/architecture/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Архитектура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10415" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10415"><a href="https://otus.ru/categories/operations/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Инфраструктура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10416" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10416"><a href="https://otus.ru/categories/information-security-courses/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Безопасность<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10417" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10417"><a href="https://otus.ru/categories/data-science/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Data Science<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10418" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10418"><a href="https://otus.ru/categories/gamedev/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">GameDev<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10419" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10419"><a href="https://otus.ru/categories/marketing-business/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Управление<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10420" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10420"><a href="https://otus.ru/categories/analytics/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Аналитика и анализ<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10421" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10421"><a href="https://otus.ru/categories/testing/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Тестирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </div>
</div>
</div>
<div class="main wrap">
<div class="ts-row cf">
<div class="col-8 main-content cf">
<article id="post-2210" class="the-post post-2210 post type-post status-publish format-standard has-post-thumbnail category-polza tag-jango tag-python">
<header class="post-header the-post-header cf">
<div class="post-meta the-post-meta">
<span class="post-cat">
<a href="https://otus.ru/journal/category/polza/" class="category" data-wpel-link="internal">Полезное</a>
</span>
<h1 class="post-title">
Все о Django: актуальная информация и создание первого приложения
</h1>
<a href="https://otus.ru/journal/vse-o-django-aktualnaya-informaciya-i-sozdanie-pervogo-prilozheniya/" class="date-link" data-wpel-link="internal"><time class="post-date">19 октября, 2021</time></a>
</div>
<div class="featured">
<a href="https://otus.ru/journal/wp-content/uploads/2021/10/oj-1080x720-16.png" class="image-link" data-wpel-link="internal"><img width="770" height="515" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20770%20515%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-contentberg-main size-contentberg-main lazyload wp-post-image" alt="Все о Django: актуальная информация и создание первого приложения" title="Все о Django: актуальная информация и создание первого приложения" decoding="async" fetchpriority="high" data-srcset="https://otus.ru/journal/wp-content/uploads/2021/10/oj-1080x720-16-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2021/10/oj-1080x720-16-300x200.png 300w, https://otus.ru/journal/wp-content/uploads/2021/10/oj-1080x720-16-1024x683.png 1024w, https://otus.ru/journal/wp-content/uploads/2021/10/oj-1080x720-16-150x100.png 150w, https://otus.ru/journal/wp-content/uploads/2021/10/oj-1080x720-16-270x180.png 270w" data-src="https://otus.ru/journal/wp-content/uploads/2021/10/oj-1080x720-16-770x515.png" data-sizes="(max-width: 770px) 100vw, 770px" /> </a>
</div>
</header><!-- .post-header -->
<div class="post-content description cf entry-content content-normal">
<div id="ez-toc-container" class="ez-toc-v2_0_61 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction">
<div class="ez-toc-title-container">
<p class="ez-toc-title " >Содержание</p>
<span class="ez-toc-title-toggle"><a href="#" class="ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle" aria-label="Toggle Table of Content"><span class="ez-toc-js-icon-con"><span class=""><span class="eztoc-hide" style="display:none;">Toggle</span><span class="ez-toc-icon-toggle-span"><svg style="fill: #999;color:#999" xmlns="http://www.w3.org/2000/svg" class="list-377408" width="20px" height="20px" viewBox="0 0 24 24" fill="none"><path d="M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z" fill="currentColor"></path></svg><svg style="fill: #999;color:#999" class="arrow-unsorted-368013" xmlns="http://www.w3.org/2000/svg" width="10px" height="10px" viewBox="0 0 24 24" version="1.2" baseProfile="tiny"><path d="M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z"/></svg></span></span></span></a></span></div>
<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-1" href="#Django_%E2%80%93_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5" title="Django – определение">Django – определение</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-2" href="#%D0%A4%D1%80%D0%B5%D0%B9%D0%BC%D0%B2%D0%BE%D1%80%D0%BA_%E2%80%93_%D1%8D%D1%82%D0%BE" title="Фреймворк – это">Фреймворк – это</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-3" href="#%D0%9F%D1%80%D0%B5%D0%B8%D0%BC%D1%83%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%B0_%D0%94%D0%B6%D0%B0%D0%BD%D0%B3%D0%BE" title="Преимущества Джанго">Преимущества Джанго</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-4" href="#%D0%9D%D0%B5%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D0%B8" title="Немного истории">Немного истории</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-5" href="#%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81_%D0%BF%D0%BE%D0%BF%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D1%81%D1%82%D0%B8" title="Вопрос популярности">Вопрос популярности</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-6" href="#%D0%9E_%D0%B3%D0%B8%D0%B1%D0%BA%D0%BE%D1%81%D1%82%D0%B8" title="О гибкости">О гибкости</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-7" href="#%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BF%D1%80%D0%B5%D1%82%D0%B0%D1%86%D0%B8%D1%8F_%D0%BA%D0%BE%D0%B4%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8" title="Интерпретация кодификации">Интерпретация кодификации</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-8" href="#%D0%9F%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0_%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0_%D0%B2_view" title="Правильная отправка запроса в view">Правильная отправка запроса в view</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-9" href="#%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0" title="Обработка запроса">Обработка запроса</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-10" href="#%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0" title="Создание проекта">Создание проекта</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-11" href="#%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D0%9A%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3" title="Приложение Каталог">Приложение Каталог</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-12" href="#%D0%A0%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9_%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81" title="Регистрационный вопрос">Регистрационный вопрос</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-13" href="#%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0" title="Настройки проекта">Настройки проекта</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-14" href="#%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%B0" title="Подключение адреса">Подключение адреса</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-15" href="#%D0%9A%D0%B0%D0%BA_%D0%B1%D1%8B%D1%81%D1%82%D1%80%D0%BE_%D0%BE%D1%81%D0%B2%D0%BE%D0%B8%D1%82%D1%8C_%D0%94%D0%B6%D0%B0%D0%BD%D0%B3%D0%BE" title="Как быстро освоить Джанго">Как быстро освоить Джанго</a></li></ul></nav></div>
<p>Для того, чтобы освоить тот или иной язык программирования, пользователю требуется изучать разнообразные составляющие программных кодов. Огромным спросом сегодня пользуется Python. Это – способ «общения» разработчика с компьютером. Относится к высокоуровневому.</p>
<p>Данный программный язык используется в:</p>
<ul><li>IT-технологиях;</li><li>разработке игр и приложений;</li><li>веб-разработке;</li><li>парсинге;</li><li>машинном обучении.</li></ul>
<p>Это – простой и интересный вариант как для новичков, так и для продвинутых программистов. У соответствующего языка имеется такой элемент как Django. О нем пойдет речь в данной статье. Предложенная информация окажется полезной для всех, кто решил программировать на Питоне (далее – py).</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="Django_%E2%80%93_%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5"></span>Django – определение<span class="ez-toc-section-end"></span></h2>
<p>Django – это py фреймворк. Относится к высокоуровневому. Позволяет осуществлять создание и поддержку безопасных веб сайтов. Характеризуется как свободный. Использует при работе шаблон проектирования MVC. Поддержка проекта осуществляется компанией Django Software Foundation.</p>
<p>При создании сайта на Django py задействуется одно или несколько приложений. Их лучше делать отчуждаемыми, обособленными, подключаемыми. Это – ключевое отличие фреймворка от других «собратьев».</p>
<p>В процессе работы использует собственный ORM. В нем модель информации описывается py классами. По соответствующим элементам будет происходить дальнейшая генерация базы данных.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A4%D1%80%D0%B5%D0%B9%D0%BC%D0%B2%D0%BE%D1%80%D0%BA_%E2%80%93_%D1%8D%D1%82%D0%BE"></span>Фреймворк – это<span class="ez-toc-section-end"></span></h2>
<p>Django py – это FrameWork. Так называют особую структуру, на базе которой удается создавать тот или иной продукт. Некий шаблон, позволяющий создавать софт и веб-странички с минимальными усилиями. Посредством фреймворков разработка осуществляется в разы прозе и быстрее, чем при написании кодов «с нуля».</p>
<p>Framework – набор шаблонов и заготовок. Каркас проекта, который необходимо реализовать. На него пользователи будет «нанизывать»:</p>
<ul><li>функции;</li><li>фишки;</li><li>интерфейс;</li><li>дополнительные возможности.</li></ul>
<p>Все, что останется разработчику при создании сайта – это пройтись по всем блокам имеющегося кода и добавить туда недостающие элементы.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9F%D1%80%D0%B5%D0%B8%D0%BC%D1%83%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%B0_%D0%94%D0%B6%D0%B0%D0%BD%D0%B3%D0%BE"></span>Преимущества Джанго<span class="ez-toc-section-end"></span></h2>
<p>Django py – фреймворк, который пользуется спросом не только у новичков, но и у продвинутых программистов. С его помощью производится создание софта, который будет:</p>
<ol type="1"><li>Полным. Джанго – это принцип «все включено». В нем есть почти все, что только может задумать для реализации программер. Элементы отлично взаимодействуют между собой, потому что включены в одну «коробку».</li><li>Разносторонним. Django py используется для всех видов веб-страниц, включая системы управления контентом и социальные сети. Работает с любой клиентской средой, доставляет софт практически во всех существующих форматах.</li><li>Безопасным. Среди основных преимуществ порталов, созданных посредством рассматриваемого фреймворка, выделяют высокий уровень безопасности. За счет готовых шаблонов программеры могут избежать распространенных ошибок при создании программных кодификаций.</li><li>Масштабируемым. В процессе реализации Джанго задействует архитектуру типа shared-nothing. Это значит, что каждая ее часть не зависит от других. Ее очень легко заменить или откорректировать при необходимости. Django поддерживает масштабирование при увеличении трафика. Соответствующий результат достигает посредством добавления оборудования на любом уровне.</li><li>Простым и удобным в сопровождении. Получаемый код является удобным. Здесь имеет место принцип DRY. Он предусматривает отсутствие дублирования. Как результат – объем кода сокращается, повышается его скорость обработки и реализации.</li><li>Переносным. Django относится к функциям и дополнениям py, который обладает отличной оптимизацией и кроссплатформенностью. Соответственно, сайты и проекты, созданные этим фреймворком, тоже будут запускаться без труда на большинстве современных популярных операционных систем.</li></ol>
<p>Готовые формы и шаблоны Джанго – это верный путь к созданию уникального, удобного и практичного app. Подойдет для работы как новичков, так и продвинутых разработчиков.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9D%D0%B5%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D0%B8"></span>Немного истории<span class="ez-toc-section-end"></span></h2>
<p>Ранее Питон не имел подобного универсального фреймворка. Его впервые установили в 2003 году. Создателем стала команда разработчиков, которая занималась обслуживание газетных веб-страничек. После того, как они создали несколько сайтов, задействованные элементы кодификаций использовались для будущих проектов. Это избавляло от лишней работы и нагрузки.</p>
<p>Соответствующий популярный «блок» кода преобразовался в проект под названием Django. В 2005 году у него образовалась открытая кодификация.</p>
<p>По сей день рассматриваемый py фреймворк совершенствуется и улучшается. Официальный открытый релиз состоялся в сентябре 2008 года. В 2020 году появилась относительно новая версия – 3.1. Каждое обновление включает в себя новые:</p>
<ul><li>функции;</li><li>исправления обнаруженных ошибок;</li><li>поддержку новых типов баз данных;</li><li>шаблонизаторы;</li><li>кеширование.</li></ul>
<p>Теперь Джанго – это популярный и стремительно развивающийся проект совместного типа с открытым исходным кодов. К его совершенствованию привлечены тысячи разработчиков и пользователей. Несмотря на то, что происхождение framework вызывает некое отторжение, Django py стал универсальным элементом для создания совершенно любых веб-ресурсов.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81_%D0%BF%D0%BE%D0%BF%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D1%81%D1%82%D0%B8"></span>Вопрос популярности<span class="ez-toc-section-end"></span></h3>
<p>Серверные фреймворки не получают точной и окончательной оценки по своей популярности. Но программеры стараются рассчитать соответствующий показатель при помощи разнообразных проектов на GitHub и вопросов на StackOverflow.</p>
<p>Django используется для того, чтобы создать программу, расширение или веб-сайт, который будет универсальным и удобным. Анализ существующего контента, базирующего на соответствующем фреймворке, показывает – он достаточно популярен. Готовые проекты предусматривают огромное количество посетителей и приносят неплохой трафик.</p>
<p>Джанго py используется в:</p>
<ul><li>Instagram;</li><li>Pinterest;</li><li>Mozilla;</li><li>National Geographic;</li><li>MacArthur Foundation;</li><li>Open Stack.</li></ul>
<p> Все перечисленные готовые интернет проекты известны современным юзерам и находятся в активном обиходе. Поэтому в полезности и популярности фреймворка нет никаких поводов для сомнения.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9E_%D0%B3%D0%B8%D0%B1%D0%BA%D0%BE%D1%81%D1%82%D0%B8"></span>О гибкости<span class="ez-toc-section-end"></span></h3>
<p>Условно все frameworks можно разделить на гибкие и негибкие. Вторая категория – это такие «элементы кода», у которых имеется единственный правильный путь решения поставленной задачи. Поддерживают быстрое развертывание в определенной сфере. Метод решения хорошо реализуется и документируется. Но, если требуется решить проблемы за пределами основной области, могут возникать определенные трудности.</p>
<p>Гибкие фреймворки имеют меньше ограничений. Они позволяют разработчикам осуществлять поиск, а также задействовать подходящие инструменты для конкретных задач.</p>
<p>Джанго относят к «умеренно гибким» фреймворкам. Это – набор компонентов для обработки основной массы задач веб-разработки в сочетании с одним-двумя предпочтительных способами их применения. Подобная архитектура указывает на то, что пользователь может выбирать из нескольких функций что-то одно или добавлять поддержку совершенно новых возможностей.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BF%D1%80%D0%B5%D1%82%D0%B0%D1%86%D0%B8%D1%8F_%D0%BA%D0%BE%D0%B4%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8"></span>Интерпретация кодификации<span class="ez-toc-section-end"></span></h2>
<p>Если создается apps на основе Джанго, требуется выяснить, как будет выглядеть соответствующий код. В традиционной форме интернет странички или соответствующие приложения работают с HTTP-запросами от браузеров или иных клиентов. После получения заброса осуществляется разработка необходимых элементов. Опора обеспечивается за счет:</p>
<ul><li>URL-адреса;</li><li>информации в POST;</li><li>GET запросов.</li></ul>
<p>Далее, в зависимости от поставленной проблемы, можно записывать или считывать материалы электронного типа из БД, а также производить иные манипуляции. Приложение даст интернет обозревателю ответ, создавая динамически HTML-страничку для дальнейшего отображения в HTML-шаблоне.</p>
<p>Sites from Django работают иначе. Сначала нужно провести группировку кода, который отвечает за обработку каждого шага в самостоятельные файлы:</p>
<ol type="1"><li>URLs. Чтобы упростить поставленную задачу, напишем отдельные функции для обработки каждой страницы в Сети. URL-маршрутизаторы перенаправляют HTTP-запросы в соответствующее представление на основе адресного запроса. Также подобное оборудование способно извлекать информацию в соответствии с имеющимися шаблонами. После осуществляется отображение оных в виде аргументов.</li><li>View. Функция обработчика запросов (import views), которая сначала получает HTTP-запросы. Далее производит возврат ответов. Функция «отображение» обладает доступом к информации, необходимой для удовлетворения поставленных задач. Далее производится преобразование ответов в шаблоны при помощи модели.</li><li>Models. Следующим важным моментом выступают модели. Это – объекты py, определяющие структуру данных приложения. Предоставляют механизмы для того, чтобы управлять и реализовывать запросы в базах данных.</li><li>Templates. Это – тестовый файл, который мы получим вследствие применения кода. Документ определяет структуру или разметку странички с полями для подстановки. Последние задействованы для вывода текущего (актуального) содержимого.</li></ol>
<p>Если сделать приложение на Джанго py, оно будет реализовывать структуру MVT.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9F%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0_%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0_%D0%B2_view"></span>Правильная отправка запроса в view<span class="ez-toc-section-end"></span></h2>
<p>Теперь самое время рассмотреть отдельные «блоки» кода. Эта информаций поможет лучше понимать формы и шаблоны Django py.</p>
<figure class="wp-block-image size-large"><img decoding="async" width="835" height="188" src="https://otus.ru/journal/wp-content/uploads/2021/10/1-3.jpg" alt="Все о Django: актуальная информация и создание первого приложения" class="wp-image-2214" srcset="https://otus.ru/journal/wp-content/uploads/2021/10/1-3.jpg 835w, https://otus.ru/journal/wp-content/uploads/2021/10/1-3-300x68.jpg 300w, https://otus.ru/journal/wp-content/uploads/2021/10/1-3-150x34.jpg 150w, https://otus.ru/journal/wp-content/uploads/2021/10/1-3-768x173.jpg 768w" sizes="(max-width: 835px) 100vw, 835px" /></figure>
<p>Первая проблема, с которой может столкнуться разработчик – отправка запроса в правильный view. Сопоставление URL-адресов находится в файле urls. Py. В примере, который видели выше, сопоставитель отвечает за определение списка сопоставлений между маршрутами (конкретными URL-запросами), а также соответствующими функциями отображения. При получении HTTP-запроса, имеющего URL, который отвечает определенному шаблону, будет осуществляться вызов связанной функции отображения с последующей передачей запроса.</p>
<p>Если запустить код, объект urlpatterns будет служить списком функций path() или re_path(). Первый аргумент в обоих методах – это шаблон (маршрут), который будет сопоставлен. В path() скобки углового типа применяются для того, чтобы определить части URL, которые захватываются и передаются в функцию отображения в виде именованных аргументов. Re_path() задействует гибкий подход к сопоставлению шаблонов – регулярное выражение.</p>
<p>Второй аргумент, который удалось найти – это очередная функция, вызываемая при сопоставлении шаблона. Views.book_detail указывает на то, что функция имеет название book_detail(). Ее может найти система в модуле с именем views.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B0"></span>Обработка запроса<span class="ez-toc-section-end"></span></h2>
<p>Отображения – это основа веб-приложения, которое загружается на сервер и принимает HTTP-запросы от клиентов. Далее происходит возврат соответствующих ответов. Между этим производится использование ссылок и других ресурсов Django py для доступа к базам данных, шаблонам и так далее.</p>
<p>Приведенный пример предусматривает следующие особенности:</p>
<ol type="1"><li>Минимальная функция представления index() могла быть вызвана сопоставителем адресов в предыдущем разделе.</li><li>Упомянутый элемент получает HttpRequest в виде параметра.</li><li>Происходит возврат объекта HttpResponse.</li><li>Ответ просто возвращает строго запрограммированную строчку.</li></ol>
<figure class="wp-block-image size-large"><img decoding="async" width="933" height="249" src="https://otus.ru/journal/wp-content/uploads/2021/10/2-2.jpg" alt="Все о Django: актуальная информация и создание первого приложения" class="wp-image-2215" srcset="https://otus.ru/journal/wp-content/uploads/2021/10/2-2.jpg 933w, https://otus.ru/journal/wp-content/uploads/2021/10/2-2-300x80.jpg 300w, https://otus.ru/journal/wp-content/uploads/2021/10/2-2-150x40.jpg 150w, https://otus.ru/journal/wp-content/uploads/2021/10/2-2-768x205.jpg 768w" sizes="(max-width: 933px) 100vw, 933px" /></figure>
<p>Создадим и определим функции при помощи ключевого слова def. У него будут именованные параметры, перечисляемые в скобках после имени «операции». Строку требуется завершить двоеточием.</p>
<p>Стоит обратить внимание на то, что отступы в строках кода крайне важны. Они помогают определять, какие строчки кода расположены внутри конкретного блока. Это – основной нюанс при работе с py.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0"></span>Создание проекта<span class="ez-toc-section-end"></span></h2>
<p>Если программист хочет create site при помощи Джанго, ему предстоит создавать проекты, каталоги и другие элементы. Создадим файл новой разработки. Для этого требуется:</p>
<ol type="1"><li>Открыть командную строку или терминал.</li><li>Перейти в папку, где хочется разместить проект.</li><li>Создать папку для нового сайта.</li><li>Войти в соответствующий «объект» при помощи специальной команды. Она звучит как CD.</li></ol>
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="920" height="100" src="https://otus.ru/journal/wp-content/uploads/2021/10/3-1.jpg" alt="Все о Django: актуальная информация и создание первого приложения" class="wp-image-2216" srcset="https://otus.ru/journal/wp-content/uploads/2021/10/3-1.jpg 920w, https://otus.ru/journal/wp-content/uploads/2021/10/3-1-300x33.jpg 300w, https://otus.ru/journal/wp-content/uploads/2021/10/3-1-150x16.jpg 150w, https://otus.ru/journal/wp-content/uploads/2021/10/3-1-768x83.jpg 768w" sizes="(max-width: 920px) 100vw, 920px" /></figure>
<p>Теперь создадим папку (новую) при помощи Django-admin startproject. Для этого используется пример кода, приведенный ниже. После осуществляется вход в папку.</p>
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="636" height="93" src="https://otus.ru/journal/wp-content/uploads/2021/10/4-1.jpg" alt="Все о Django: актуальная информация и создание первого приложения" class="wp-image-2217" srcset="https://otus.ru/journal/wp-content/uploads/2021/10/4-1.jpg 636w, https://otus.ru/journal/wp-content/uploads/2021/10/4-1-300x44.jpg 300w, https://otus.ru/journal/wp-content/uploads/2021/10/4-1-150x22.jpg 150w" sizes="(max-width: 636px) 100vw, 636px" /></figure>
<p>Задействованная команда создаст файловую структуру:</p>
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="554" height="178" src="https://otus.ru/journal/wp-content/uploads/2021/10/5-1.jpg" alt="Все о Django: актуальная информация и создание первого приложения" class="wp-image-2218" srcset="https://otus.ru/journal/wp-content/uploads/2021/10/5-1.jpg 554w, https://otus.ru/journal/wp-content/uploads/2021/10/5-1-300x96.jpg 300w, https://otus.ru/journal/wp-content/uploads/2021/10/5-1-150x48.jpg 150w" sizes="(max-width: 554px) 100vw, 554px" /></figure>
<p>Python Manage используется для того, чтобы создавать приложения, работать с базами данных, а также запускать отладочный сервер (runserver). Это крайне полезный скрипт.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D0%9A%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3"></span>Приложение Каталог<span class="ez-toc-section-end"></span></h2>
<p>Для того, чтобы создать приложение catalog, требуется прописать следующую команду:</p>
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="460" height="57" src="https://otus.ru/journal/wp-content/uploads/2021/10/6-1.jpg" alt="Все о Django: актуальная информация и создание первого приложения" class="wp-image-2219" srcset="https://otus.ru/journal/wp-content/uploads/2021/10/6-1.jpg 460w, https://otus.ru/journal/wp-content/uploads/2021/10/6-1-300x37.jpg 300w, https://otus.ru/journal/wp-content/uploads/2021/10/6-1-150x19.jpg 150w" sizes="(max-width: 460px) 100vw, 460px" /></figure>
<p>Предварительно осуществляется поиск папки locallibrary. Команда выполняется из manage.py.</p>
<p>За счет соответствующей команды произойдет:</p>
<ul><li>создание новой папки;</li><li>наполнение созданного объекта файлами различных частей приложения (models import, urls import path);</li><li>образование пустого файла для того, чтобы Джанго и Питон могли распознать папку в виде модуля.</li></ul>
<p>Но теперь требуется зарегистрировать папку с приложением.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A0%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9_%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81"></span>Регистрационный вопрос<span class="ez-toc-section-end"></span></h3>
<p>Для того, чтобы приложение можно было использовать в проекте, требуется его регистрация. Осуществляется это за счет добавления их «имен» в список installed_apps в настройках проекта.</p>
<p>Сначала требуется осуществить поиск и открытие файла locallibrary/locallibrary/settings.py, после – search installed_apps. Далее предстоит добавить новую строчку в конец списка.</p>
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="806" height="244" src="https://otus.ru/journal/wp-content/uploads/2021/10/7-1.jpg" alt="Все о Django: актуальная информация и создание первого приложения" class="wp-image-2220" srcset="https://otus.ru/journal/wp-content/uploads/2021/10/7-1.jpg 806w, https://otus.ru/journal/wp-content/uploads/2021/10/7-1-300x91.jpg 300w, https://otus.ru/journal/wp-content/uploads/2021/10/7-1-150x45.jpg 150w, https://otus.ru/journal/wp-content/uploads/2021/10/7-1-768x232.jpg 768w" sizes="(max-width: 806px) 100vw, 806px" /></figure>
<p>Она указывает на файл конфигурации приложения (catalogConfig). Он создается в apps.py после реализации утилиты.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0"></span>Настройки проекта<span class="ez-toc-section-end"></span></h3>
<p>При использовании БД DQL дополнительное подключение элементов не требуется. В файле, с name settings.py хранятся некоторые настройки проекта. Пример – time_zone. Это – определение часового пояса.</p>
<p>Также стоит обратить внимание на:</p>
<ol type="1"><li>Secret_key. Это – секретный ключ Django. Используется для поддержки безопасности сайта. Меняется каждый раз, когда происходит получение соответствующей информации в ходе разработки утилиты.</li><li>Debug. Отвечает за включение подробных сообщений об ошибках.</li></ol>
<p>Далее остается подключить URL.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%B0"></span>Подключение адреса<span class="ez-toc-section-end"></span></h3>
<p>Для того, чтобы подключить URL, требуется:</p>
<p>1. Открыть urls.py.</p>
<p>2. Добавить строчки в самый конец файла.</p>
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="712" height="180" src="https://otus.ru/journal/wp-content/uploads/2021/10/8-1.jpg" alt="Все о Django: актуальная информация и создание первого приложения" class="wp-image-2224" srcset="https://otus.ru/journal/wp-content/uploads/2021/10/8-1.jpg 712w, https://otus.ru/journal/wp-content/uploads/2021/10/8-1-300x76.jpg 300w, https://otus.ru/journal/wp-content/uploads/2021/10/8-1-150x38.jpg 150w" sizes="(max-width: 712px) 100vw, 712px" /></figure>
<p>3. Прописать код типа:</p>
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="889" height="158" src="https://otus.ru/journal/wp-content/uploads/2021/10/9.jpg" alt="Все о Django: актуальная информация и создание первого приложения" class="wp-image-2223" srcset="https://otus.ru/journal/wp-content/uploads/2021/10/9.jpg 889w, https://otus.ru/journal/wp-content/uploads/2021/10/9-300x53.jpg 300w, https://otus.ru/journal/wp-content/uploads/2021/10/9-150x27.jpg 150w, https://otus.ru/journal/wp-content/uploads/2021/10/9-768x136.jpg 768w" sizes="(max-width: 889px) 100vw, 889px" /></figure>
<p>4. Завершить подключение при помощи следующего блока:</p>
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="810" height="183" src="https://otus.ru/journal/wp-content/uploads/2021/10/10.jpg" alt="Все о Django: актуальная информация и создание первого приложения" class="wp-image-2222" srcset="https://otus.ru/journal/wp-content/uploads/2021/10/10.jpg 810w, https://otus.ru/journal/wp-content/uploads/2021/10/10-300x68.jpg 300w, https://otus.ru/journal/wp-content/uploads/2021/10/10-150x34.jpg 150w, https://otus.ru/journal/wp-content/uploads/2021/10/10-768x174.jpg 768w" sizes="(max-width: 810px) 100vw, 810px" /></figure>
<p>Теперь остается создать файл urls.py внутри папки catalog, а затем добавить следующий фрагмент:</p>
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="456" height="194" src="https://otus.ru/journal/wp-content/uploads/2021/10/11.jpg" alt="Все о Django: актуальная информация и создание первого приложения" class="wp-image-2221" srcset="https://otus.ru/journal/wp-content/uploads/2021/10/11.jpg 456w, https://otus.ru/journal/wp-content/uploads/2021/10/11-300x128.jpg 300w, https://otus.ru/journal/wp-content/uploads/2021/10/11-150x64.jpg 150w" sizes="(max-width: 456px) 100vw, 456px" /></figure>
<p>Это необходимо для того, чтобы определить пустой urlpatterns. Здесь осуществляется добавление URL соотношений по мере разработки сайта.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9A%D0%B0%D0%BA_%D0%B1%D1%8B%D1%81%D1%82%D1%80%D0%BE_%D0%BE%D1%81%D0%B2%D0%BE%D0%B8%D1%82%D1%8C_%D0%94%D0%B6%D0%B0%D0%BD%D0%B3%D0%BE"></span>Как быстро освоить Джанго<span class="ez-toc-section-end"></span></h2>
<p>Чтобы разобрать в том, что собой представляет a href, views и другие элементы фреймворка, не обязательно заниматься самообразованием. Создавать проекты Django учат на специализированных курсах. Есть как дистанционные, так и очные занятия.</p>
<p>Всего за несколько месяцев (изредка – в течение года) пользователь сможет «с нуля» разобраться в изученном фреймворке, а также сможет создать проекты Django. По окончании обучения выдается сертификат.</p>
<figure class="wp-block-image size-large"><a href="https://otus.ru/lessons/python-professional/?utm_source=oj&utm_medium=affilate&utm_campaign=python" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer"><img loading="lazy" decoding="async" width="970" height="90" src="https://otus.ru/journal/wp-content/uploads/2021/10/Python_970x90-20219-8b1a8e.png" alt="Все о Django: актуальная информация и создание первого приложения" class="wp-image-2211" srcset="https://otus.ru/journal/wp-content/uploads/2021/10/Python_970x90-20219-8b1a8e.png 970w, https://otus.ru/journal/wp-content/uploads/2021/10/Python_970x90-20219-8b1a8e-300x28.png 300w, https://otus.ru/journal/wp-content/uploads/2021/10/Python_970x90-20219-8b1a8e-150x14.png 150w, https://otus.ru/journal/wp-content/uploads/2021/10/Python_970x90-20219-8b1a8e-768x71.png 768w" sizes="(max-width: 970px) 100vw, 970px" /></a></figure>
</div><!-- .post-content -->
<div class="the-post-foot cf">
<div class="tag-share cf">
<div class="post-tags"><a href="https://otus.ru/journal/tag/jango/" rel="tag" data-wpel-link="internal">Jango</a><a href="https://otus.ru/journal/tag/python/" rel="tag" data-wpel-link="internal">Python</a></div>
<div class="post-share">
<div class="post-share-icons cf">
<span class="counters">
</span>
<a href="https://www.facebook.com/sharer.php?u=https%3A%2F%2Fotus.ru%2Fjournal%2Fvse-o-django-aktualnaya-informaciya-i-sozdanie-pervogo-prilozheniya%2F" class="link facebook wpel-icon-right" target="_blank" title="Share on Facebook" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-facebook"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fvse-o-django-aktualnaya-informaciya-i-sozdanie-pervogo-prilozheniya%2F&text=%D0%92%D1%81%D0%B5%20%D0%BE%20Django%3A%20%D0%B0%D0%BA%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F%20%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%BF%D0%B5%D1%80%D0%B2%D0%BE%D0%B3%D0%BE%20%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F" class="link twitter wpel-icon-right" target="_blank" title="Share on Twitter" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-twitter"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fotus.ru%2Fjournal%2Fvse-o-django-aktualnaya-informaciya-i-sozdanie-pervogo-prilozheniya%2F" class="link linkedin wpel-icon-right" target="_blank" title="LinkedIn" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-linkedin"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://pinterest.com/pin/create/button/?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fvse-o-django-aktualnaya-informaciya-i-sozdanie-pervogo-prilozheniya%2F&media=https%3A%2F%2Fotus.ru%2Fjournal%2Fwp-content%2Fuploads%2F2021%2F10%2Foj-1080x720-16.png&description=%D0%92%D1%81%D0%B5%20%D0%BE%20Django%3A%20%D0%B0%D0%BA%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F%20%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B8%20%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%BF%D0%B5%D1%80%D0%B2%D0%BE%D0%B3%D0%BE%20%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F" class="link pinterest wpel-icon-right" target="_blank" title="Pinterest" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-pinterest-p"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
</div>
</div>
</div>
</div>
<div class="post-nav">
<div class="post previous cf">
<a href="https://otus.ru/journal/yazyki-c-vse-o-tipah-dannyh/" title="Prev Post" class="nav-icon" data-wpel-link="internal">
<i class="fa fa-angle-left"></i>
</a>
<span class="content">
<a href="https://otus.ru/journal/yazyki-c-vse-o-tipah-dannyh/" class="image-link" rel="previous" data-wpel-link="internal">
<img width="150" height="100" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20150%20100%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-thumbnail size-thumbnail lazyload wp-post-image" alt="Языки C: все о типах данных" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2021/10/oj-1080x720-15-150x100.png 150w, https://otus.ru/journal/wp-content/uploads/2021/10/oj-1080x720-15-300x200.png 300w, https://otus.ru/journal/wp-content/uploads/2021/10/oj-1080x720-15-1024x683.png 1024w, https://otus.ru/journal/wp-content/uploads/2021/10/oj-1080x720-15-768x512.png 768w, https://otus.ru/journal/wp-content/uploads/2021/10/oj-1080x720-15-270x180.png 270w, https://otus.ru/journal/wp-content/uploads/2021/10/oj-1080x720-15-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2021/10/oj-1080x720-15-370x245.png 370w, https://otus.ru/journal/wp-content/uploads/2021/10/oj-1080x720-15.png 1080w" data-src="https://otus.ru/journal/wp-content/uploads/2021/10/oj-1080x720-15-150x100.png" data-sizes="(max-width: 150px) 100vw, 150px" title="Языки C: все о типах данных" /> </a>
<div class="post-meta">
<span class="label">Prev Post</span>
<div class="post-meta post-meta-b">
<h2 class="post-title">
<a href="https://otus.ru/journal/yazyki-c-vse-o-tipah-dannyh/" data-wpel-link="internal">Языки C: все о типах данных</a>
</h2>
<div class="below">
<a href="https://otus.ru/journal/yazyki-c-vse-o-tipah-dannyh/" class="meta-item date-link" data-wpel-link="internal"><time class="post-date" datetime="2021-10-19T18:39:17+00:00">19 октября, 2021</time></a>
<span class="meta-sep"></span>
<span class="meta-item read-time">7 Mins Read</span>
</div>
</div> </div>
</span>
</div>
<div class="post next cf">
<a href="https://otus.ru/journal/data-driven-marketing-opredelenie-osobennosti-primenenie/" title="Next Post" class="nav-icon" data-wpel-link="internal">
<i class="fa fa-angle-right"></i>
</a>
<span class="content">
<a href="https://otus.ru/journal/data-driven-marketing-opredelenie-osobennosti-primenenie/" class="image-link" rel="next" data-wpel-link="internal">
<img width="150" height="100" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20150%20100%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-thumbnail size-thumbnail lazyload wp-post-image" alt="Data Driven Маркетинг: определение, особенности, применение" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2021/10/oj-1080x720-17-150x100.png 150w, https://otus.ru/journal/wp-content/uploads/2021/10/oj-1080x720-17-300x200.png 300w, https://otus.ru/journal/wp-content/uploads/2021/10/oj-1080x720-17-1024x683.png 1024w, https://otus.ru/journal/wp-content/uploads/2021/10/oj-1080x720-17-768x512.png 768w, https://otus.ru/journal/wp-content/uploads/2021/10/oj-1080x720-17-270x180.png 270w, https://otus.ru/journal/wp-content/uploads/2021/10/oj-1080x720-17-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2021/10/oj-1080x720-17-370x245.png 370w, https://otus.ru/journal/wp-content/uploads/2021/10/oj-1080x720-17.png 1080w" data-src="https://otus.ru/journal/wp-content/uploads/2021/10/oj-1080x720-17-150x100.png" data-sizes="(max-width: 150px) 100vw, 150px" title="Data Driven Маркетинг: определение, особенности, применение" /> </a>
<div class="post-meta">
<span class="label">Next Post</span>
<div class="post-meta post-meta-b">
<h2 class="post-title">
<a href="https://otus.ru/journal/data-driven-marketing-opredelenie-osobennosti-primenenie/" data-wpel-link="internal">Data Driven Маркетинг: определение, особенности, применение</a>
</h2>
<div class="below">
<a href="https://otus.ru/journal/data-driven-marketing-opredelenie-osobennosti-primenenie/" class="meta-item date-link" data-wpel-link="internal"><time class="post-date" datetime="2021-10-19T19:28:48+00:00">19 октября, 2021</time></a>
<span class="meta-sep"></span>
<span class="meta-item read-time">8 Mins Read</span>
</div>
</div> </div>
</span>
</div>
</div>
<section class="related-posts grid-3">
<h4 class="section-head"><span class="title">Читать ещё</span></h4>
<div class="ts-row posts cf">
<article class="post col-4">
<a href="https://otus.ru/journal/uroven-gotovnosti-cto-k-2026/" title="Уровень готовности CTO к 2026" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Уровень готовности CTO к 2026" title="Уровень готовности CTO к 2026" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-270x180.jpg 270w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-770x515.jpg 770w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-370x245.jpg 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-270x180.jpg" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/uroven-gotovnosti-cto-k-2026/" class="post-link" data-wpel-link="internal">Уровень готовности CTO к 2026</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-11-16T19:50:59+00:00">16 ноября, 2025</time>
</div>
</div>
</article >
<article class="post col-4">
<a href="https://otus.ru/journal/novye-uroki-noyabrya-tolko-top-temy-po-programmirovaniju/" title="Новые уроки ноября: только топ-темы по программированию" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Новые уроки ноября: только топ-темы по программированию" title="Новые уроки ноября: только топ-темы по программированию" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-270x180.jpg 270w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-770x515.jpg 770w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-370x245.jpg 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-270x180.jpg" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/novye-uroki-noyabrya-tolko-top-temy-po-programmirovaniju/" class="post-link" data-wpel-link="internal">Новые уроки ноября: только топ-темы по программированию</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-11-09T23:24:11+00:00">9 ноября, 2025</time>
</div>
</div>
</article >
<article class="post col-4">
<a href="https://otus.ru/journal/schjot-idjot-na-chasy/" title="Счёт идёт на часы" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Счёт идёт на часы" title="Счёт идёт на часы" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-270x180.png 270w, https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-370x245.png 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-270x180.png" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/schjot-idjot-na-chasy/" class="post-link" data-wpel-link="internal">Счёт идёт на часы</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-10-30T15:04:59+00:00">30 октября, 2025</time>
</div>
</div>
</article >
</div>
</section>
</article> <!-- .the-post -->
</div>
<aside class="col-4 sidebar">
<div class="inner">
<ul>
<li id="search-2" class="widget widget_search"><h5 class="widget-title"><span>Поиск по блогу</span></h5>
<form method="get" class="search-form" action="https://otus.ru/journal/">
<label>
<span class="screen-reader-text">Search for:</span>
<input type="search" class="search-field" placeholder="Введите запрос и нажмите Enter" value="" name="s" title="Search for:" />
</label>
<button type="submit" class="search-submit"><i class="fa fa-search"></i></button>
</form>
</li>
<li id="tag_cloud-5" class="widget widget_tag_cloud"><h5 class="widget-title"><span>Метки</span></h5><div class="tagcloud"><a href="https://otus.ru/journal/tag/android-2/" class="tag-cloud-link tag-link-74 tag-link-position-1" style="font-size: 12.472222222222pt;" aria-label="Android (34 элемента)" data-wpel-link="internal">Android</a>
<a href="https://otus.ru/journal/tag/c-3/" class="tag-cloud-link tag-link-91 tag-link-position-2" style="font-size: 10.916666666667pt;" aria-label="C (23 элемента)" data-wpel-link="internal">C</a>
<a href="https://otus.ru/journal/tag/c-2/" class="tag-cloud-link tag-link-81 tag-link-position-3" style="font-size: 12.666666666667pt;" aria-label="C# (35 элементов)" data-wpel-link="internal">C#</a>
<a href="https://otus.ru/journal/tag/c/" class="tag-cloud-link tag-link-20 tag-link-position-4" style="font-size: 12.472222222222pt;" aria-label="c++ (34 элемента)" data-wpel-link="internal">c++</a>
<a href="https://otus.ru/journal/tag/computer-science/" class="tag-cloud-link tag-link-209 tag-link-position-5" style="font-size: 15.972222222222pt;" aria-label="computer science (78 элементов)" data-wpel-link="internal">computer science</a>
<a href="https://otus.ru/journal/tag/css/" class="tag-cloud-link tag-link-288 tag-link-position-6" style="font-size: 8.6805555555556pt;" aria-label="CSS (13 элементов)" data-wpel-link="internal">CSS</a>
<a href="https://otus.ru/journal/tag/data-science/" class="tag-cloud-link tag-link-151 tag-link-position-7" style="font-size: 8pt;" aria-label="Data Science (11 элементов)" data-wpel-link="internal">Data Science</a>
<a href="https://otus.ru/journal/tag/devops/" class="tag-cloud-link tag-link-98 tag-link-position-8" style="font-size: 10.138888888889pt;" aria-label="devops (19 элементов)" data-wpel-link="internal">devops</a>
<a href="https://otus.ru/journal/tag/docker/" class="tag-cloud-link tag-link-143 tag-link-position-9" style="font-size: 8.2916666666667pt;" aria-label="Docker (12 элементов)" data-wpel-link="internal">Docker</a>
<a href="https://otus.ru/journal/tag/gamedev/" class="tag-cloud-link tag-link-25 tag-link-position-10" style="font-size: 11.694444444444pt;" aria-label="gamedev (28 элементов)" data-wpel-link="internal">gamedev</a>
<a href="https://otus.ru/journal/tag/hr/" class="tag-cloud-link tag-link-103 tag-link-position-11" style="font-size: 8pt;" aria-label="hr (11 элементов)" data-wpel-link="internal">hr</a>
<a href="https://otus.ru/journal/tag/html/" class="tag-cloud-link tag-link-217 tag-link-position-12" style="font-size: 11.208333333333pt;" aria-label="HTML (25 элементов)" data-wpel-link="internal">HTML</a>
<a href="https://otus.ru/journal/tag/ios/" class="tag-cloud-link tag-link-101 tag-link-position-13" style="font-size: 8.9722222222222pt;" aria-label="iOS (14 элементов)" data-wpel-link="internal">iOS</a>
<a href="https://otus.ru/journal/tag/it/" class="tag-cloud-link tag-link-50 tag-link-position-14" style="font-size: 10.527777777778pt;" aria-label="IT (21 элемент)" data-wpel-link="internal">IT</a>
<a href="https://otus.ru/journal/tag/java/" class="tag-cloud-link tag-link-75 tag-link-position-15" style="font-size: 15.680555555556pt;" aria-label="Java (73 элемента)" data-wpel-link="internal">Java</a>
<a href="https://otus.ru/journal/tag/javascript/" class="tag-cloud-link tag-link-83 tag-link-position-16" style="font-size: 14.319444444444pt;" aria-label="JavaScript (53 элемента)" data-wpel-link="internal">JavaScript</a>
<a href="https://otus.ru/journal/tag/linux/" class="tag-cloud-link tag-link-141 tag-link-position-17" style="font-size: 11.888888888889pt;" aria-label="Linux (29 элементов)" data-wpel-link="internal">Linux</a>
<a href="https://otus.ru/journal/tag/machine-learning/" class="tag-cloud-link tag-link-167 tag-link-position-18" style="font-size: 8.6805555555556pt;" aria-label="Machine Learning (13 элементов)" data-wpel-link="internal">Machine Learning</a>
<a href="https://otus.ru/journal/tag/otus-book/" class="tag-cloud-link tag-link-261 tag-link-position-19" style="font-size: 9.9444444444444pt;" aria-label="otus book (18 элементов)" data-wpel-link="internal">otus book</a>
<a href="https://otus.ru/journal/tag/php/" class="tag-cloud-link tag-link-45 tag-link-position-20" style="font-size: 10.527777777778pt;" aria-label="PHP (21 элемент)" data-wpel-link="internal">PHP</a>
<a href="https://otus.ru/journal/tag/python/" class="tag-cloud-link tag-link-27 tag-link-position-21" style="font-size: 16.944444444444pt;" aria-label="Python (99 элементов)" data-wpel-link="internal">Python</a>
<a href="https://otus.ru/journal/tag/qa/" class="tag-cloud-link tag-link-155 tag-link-position-22" style="font-size: 11.402777777778pt;" aria-label="qa (26 элементов)" data-wpel-link="internal">qa</a>
<a href="https://otus.ru/journal/tag/sql/" class="tag-cloud-link tag-link-38 tag-link-position-23" style="font-size: 12.861111111111pt;" aria-label="SQL (37 элементов)" data-wpel-link="internal">SQL</a>
<a href="https://otus.ru/journal/tag/team-lead/" class="tag-cloud-link tag-link-364 tag-link-position-24" style="font-size: 9.9444444444444pt;" aria-label="team lead (18 элементов)" data-wpel-link="internal">team lead</a>
<a href="https://otus.ru/journal/tag/unity/" class="tag-cloud-link tag-link-24 tag-link-position-25" style="font-size: 8pt;" aria-label="unity (11 элементов)" data-wpel-link="internal">unity</a>
<a href="https://otus.ru/journal/tag/algoritmy/" class="tag-cloud-link tag-link-30 tag-link-position-26" style="font-size: 9.9444444444444pt;" aria-label="Алгоритмы (18 элементов)" data-wpel-link="internal">Алгоритмы</a>
<a href="https://otus.ru/journal/tag/bazy-dannyh/" class="tag-cloud-link tag-link-40 tag-link-position-27" style="font-size: 10.138888888889pt;" aria-label="Базы данных (19 элементов)" data-wpel-link="internal">Базы данных</a>
<a href="https://otus.ru/journal/tag/matematika/" class="tag-cloud-link tag-link-44 tag-link-position-28" style="font-size: 10.916666666667pt;" aria-label="Математика (23 элемента)" data-wpel-link="internal">Математика</a>
<a href="https://otus.ru/journal/tag/arhitektura-po/" class="tag-cloud-link tag-link-10 tag-link-position-29" style="font-size: 9.4583333333333pt;" aria-label="архитектура ПО (16 элементов)" data-wpel-link="internal">архитектура ПО</a>
<a href="https://otus.ru/journal/tag/bazy-dannyh-2/" class="tag-cloud-link tag-link-251 tag-link-position-30" style="font-size: 10.138888888889pt;" aria-label="базы данных (19 элементов)" data-wpel-link="internal">базы данных</a>
<a href="https://otus.ru/journal/tag/vebinar/" class="tag-cloud-link tag-link-201 tag-link-position-31" style="font-size: 13.930555555556pt;" aria-label="вебинар (48 элементов)" data-wpel-link="internal">вебинар</a>
<a href="https://otus.ru/journal/tag/dajdzhest/" class="tag-cloud-link tag-link-308 tag-link-position-32" style="font-size: 10.722222222222pt;" aria-label="дайджест (22 элемента)" data-wpel-link="internal">дайджест</a>
<a href="https://otus.ru/journal/tag/zapis-vebinara/" class="tag-cloud-link tag-link-226 tag-link-position-33" style="font-size: 14.902777777778pt;" aria-label="запись вебинара (61 элемент)" data-wpel-link="internal">запись вебинара</a>
<a href="https://otus.ru/journal/tag/zapis-uroka/" class="tag-cloud-link tag-link-272 tag-link-position-34" style="font-size: 16.069444444444pt;" aria-label="запись урока (80 элементов)" data-wpel-link="internal">запись урока</a>
<a href="https://otus.ru/journal/tag/informacionnaya-bezopasnost/" class="tag-cloud-link tag-link-232 tag-link-position-35" style="font-size: 10.138888888889pt;" aria-label="информационная безопасность (19 элементов)" data-wpel-link="internal">информационная безопасность</a>
<a href="https://otus.ru/journal/tag/karera-v-it/" class="tag-cloud-link tag-link-292 tag-link-position-36" style="font-size: 9.9444444444444pt;" aria-label="карьера в IT (18 элементов)" data-wpel-link="internal">карьера в IT</a>
<a href="https://otus.ru/journal/tag/podborka/" class="tag-cloud-link tag-link-7 tag-link-position-37" style="font-size: 12.666666666667pt;" aria-label="подборка (35 элементов)" data-wpel-link="internal">подборка</a>
<a href="https://otus.ru/journal/tag/podborka-statej/" class="tag-cloud-link tag-link-219 tag-link-position-38" style="font-size: 15.777777777778pt;" aria-label="подборка статей (75 элементов)" data-wpel-link="internal">подборка статей</a>
<a href="https://otus.ru/journal/tag/programmirovanie/" class="tag-cloud-link tag-link-65 tag-link-position-39" style="font-size: 22pt;" aria-label="программирование (332 элемента)" data-wpel-link="internal">программирование</a>
<a href="https://otus.ru/journal/tag/proekt/" class="tag-cloud-link tag-link-321 tag-link-position-40" style="font-size: 11.888888888889pt;" aria-label="проект (29 элементов)" data-wpel-link="internal">проект</a>
<a href="https://otus.ru/journal/tag/proektnaya-rabota/" class="tag-cloud-link tag-link-310 tag-link-position-41" style="font-size: 11.597222222222pt;" aria-label="проектная работа (27 элементов)" data-wpel-link="internal">проектная работа</a>
<a href="https://otus.ru/journal/tag/seti/" class="tag-cloud-link tag-link-181 tag-link-position-42" style="font-size: 12.958333333333pt;" aria-label="сети (38 элементов)" data-wpel-link="internal">сети</a>
<a href="https://otus.ru/journal/tag/testirovanie/" class="tag-cloud-link tag-link-69 tag-link-position-43" style="font-size: 13.930555555556pt;" aria-label="тестирование (48 элементов)" data-wpel-link="internal">тестирование</a>
<a href="https://otus.ru/journal/tag/upravlenie-komandoj/" class="tag-cloud-link tag-link-63 tag-link-position-44" style="font-size: 11.694444444444pt;" aria-label="управление командой (28 элементов)" data-wpel-link="internal">управление командой</a>
<a href="https://otus.ru/journal/tag/habr-2/" class="tag-cloud-link tag-link-203 tag-link-position-45" style="font-size: 13.930555555556pt;" aria-label="хабр (48 элементов)" data-wpel-link="internal">хабр</a></div>
</li>
</ul>
</div>
</aside>
</div> <!-- .ts-row -->
</div> <!-- .main -->
<footer class="main-footer dark bold">
<section class="lower-footer cf">
<div class="wrap">
<div class="links">
<div class="menu-menju-navykov-container"><ul id="menu-menju-navykov-1" class="menu"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10413"><a href="https://otus.ru/categories/programming/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Программирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10414"><a href="https://otus.ru/categories/architecture/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Архитектура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10415"><a href="https://otus.ru/categories/operations/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Инфраструктура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10416"><a href="https://otus.ru/categories/information-security-courses/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Безопасность<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10417"><a href="https://otus.ru/categories/data-science/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Data Science<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10418"><a href="https://otus.ru/categories/gamedev/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">GameDev<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10419"><a href="https://otus.ru/categories/marketing-business/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Управление<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10420"><a href="https://otus.ru/categories/analytics/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Аналитика и анализ<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10421"><a href="https://otus.ru/categories/testing/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Тестирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </div>
<p class="copyright"> © 2015-2026 OTUS </p>
<div class="to-top">
<a href="#" class="back-to-top"><i class="fa fa-angle-up"></i> Top</a>
</div>
</div>
</section>
</footer>
</div> <!-- .main-wrap -->
<div class="mobile-menu-container off-canvas" id="mobile-menu">
<a href="#" class="close"><i class="fa fa-times"></i></a>
<div class="logo">
</div>
<ul class="mobile-menu"></ul>
</div>
<div class="search-modal-wrap">
<div class="search-modal-box" role="dialog" aria-modal="true">
<form method="get" class="search-form" action="https://otus.ru/journal/">
<input type="search" class="search-field" name="s" placeholder="Search..." value="" required />
<button type="submit" class="search-submit visuallyhidden">Submit</button>
<p class="message">
Type above and press <em>Enter</em> to search. Press <em>Esc</em> to cancel. </p>
</form>
</div>
</div>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/clearfy/components/comments-plus/assets/js/url-span.js" id="wbcr-comments-plus-url-span-js"></script>
<script type="text/javascript" id="ez-toc-scroll-scriptjs-js-extra">
/* <![CDATA[ */
var eztoc_smooth_local = {"scroll_offset":"30"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/js/smooth_scroll.min.js" id="ez-toc-scroll-scriptjs-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/vendor/js-cookie/js.cookie.min.js" id="ez-toc-js-cookie-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/vendor/sticky-kit/jquery.sticky-kit.min.js" id="ez-toc-jquery-sticky-kit-js"></script>
<script type="text/javascript" id="ez-toc-js-js-extra">
/* <![CDATA[ */
var ezTOC = {"smooth_scroll":"1","visibility_hide_by_default":"","scroll_offset":"30","fallbackIcon":"<span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span>"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/js/front.min.js" id="ez-toc-js-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/custom-script.js" id="custom-script-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/magnific-popup.js" id="magnific-popup-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jquery.fitvids.js" id="jquery-fitvids-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/imagesloaded.min.js" id="imagesloaded-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/object-fit-images.js" id="object-fit-images-js"></script>
<script type="text/javascript" id="contentberg-theme-js-extra">
/* <![CDATA[ */
var Bunyad = {"custom_ajax_url":"\/journal\/vse-o-django-aktualnaya-informaciya-i-sozdanie-pervogo-prilozheniya\/"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/theme.js" id="contentberg-theme-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/theia-sticky-sidebar.js" id="theia-sticky-sidebar-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jquery.slick.js" id="jquery-slick-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jarallax.js" id="jarallax-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/masonry.min.js" id="masonry-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery.masonry.min.js" id="jquery-masonry-js"></script>
</body>
</html>
<!-- Cache served by breeze CACHE - Last modified: Tue, 10 Mar 2026 15:04:06 GMT -->