10 лучших материалов для изучения Django


Оглавление (нажмите, чтобы открыть):

Почему Django — лучший фреймворк для разработки сайтов

Django считается лучшим веб-фреймворком, написанным на Python. Этот инструмент удобно использовать для разработки сайтов, работающих с базами данных. Из этой статьи вы узнаете о Django и поймёте, почему это ключевое звено в экосистеме Python.

Прошлое и будущее фреймворка Django: краткий экскурс в историю

Django создали разработчики издания Lawrence-Journal World. Этой газете понадобился сайт, чтобы публиковать новости в интернете. Программисты Эдриан Головатый и Саймон Виллисон создали веб-приложение и сделали его публичным.

Вокруг Django быстро сформировалось активное сообщество. Фреймворк стал стремительно развиваться усилиями волонтёров. Значительную роль в успехе Django сыграли несколько известных сайтов, которые использовали этот фреймворк. В их число входят Pinterest, Dropbox, Spotify, сайт The Washington Post. В настоящее время сообщество Django включает более 11 тыс. разработчиков из 166 стран мира.

Эти сайты используют Django

Справка: русскоязычные разработчики и пользователи часто используют такой вариант написания: «Джанго». Будьте готовы к этому, если встретитесь с этим вариантом в обсуждениях или профессиональной переписке. Кстати, у нас есть краткий словарь профессионального сленга программистов.

В Django реализован принцип DRY (don’t repeat yourself). Благодаря этому сокращается время создания сайтов. То есть при использовании Django вам не нужно несколько раз переписывать один и тот же код. Фреймворк позволяет создавать сайт из компонентов. Это можно сравнить со строительством крепости с помощью Lego.

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

Почему MVT архитектура важна для веб-приложений на Django: разделение и независимое использование уровней

Фреймворк Django написан на языке программирования Python, поэтому его структура соответствует особенностям языка. Создатели реализовали в Django паттерн MVC, и он применяется в текущей версии фреймворка.

Архитектура MVC позволяет разработчику работать с визуальным представлением и бизнес-логикой приложения отдельно. Кстати, при работе с Django специалисты чаще используют термин MVT — Model-View-Template или модель-представление-шаблон. Компоненты MVT можно использовать независимо друг от друга.

Схема архитектуры MVT в Django

Документация Django определяет модель (model) как «источник информации о данных, в которых содержатся ключевые поля и поведение данных». Обычно одна модель указывает на одну таблицу в базе данных. Django поддерживает базы данных PostgreSQL, MySQL, SQLite и Oracle.

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

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

Представление (view) решает три задачи: принимает HTTP-запросы, реализует бизнес-логику, определённую методами и свойствами, отправляет HTTP-ответ в ответ на запросы. То есть представление получает данные от модели и предоставляет шаблонам (templates) доступ к этим данным или предварительно обрабатывает данные и затем предоставляет к ним доступ шаблонам.

В Django реализован мощный движок шаблонов и собственный язык разметки. Шаблоны представляют собой файлы с HTML-кодом, с помощью которого отображаются данные. Содержимое файлов может быть статическим или динамическим. Шаблоны не содержат бизнес-логики. Поэтому они только отображают данные.

Такая архитектура позволяет Django успешно решать разные задачи, о которых ниже.

Какие задачи можно решать с помощью Django: движки для сайтов, CRM, machine learning

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

Справка: название фреймворка подчёркивает его многогранность. Он назван в честь известного джазового гитариста Джанго Рейнхардта. Этот музыкант виртуозно играл на гитаре, хотя два пальца на его левой руке не функционировали после травмы, полученной во время пожара. То есть музыканту приходилось брать аккорды тремя пальцами.

Фреймворк Django справляется с большим количеством задач и повышенными нагрузками. Его применяют для создания:

  • CRM-систем.
  • CMS.
  • Коммуникационных платформ.
  • Сервисов бронирования номеров.
  • Платформ управления документооборотом.

Также Django подходит для создания алгоритмических генераторов, платформ для электронных рассылок, систем верификации, систем фильтрации с динамическими правилами и сложными параметрами, платформ для анализа данных и сложных вычислений, машинного обучения.

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

Почему Django — отличный фреймворк для веб-разработки: экосистема, SEO, библиотеки

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


Развитая экосистема

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

Чтобы лучше понять этот принцип, представьте конструктор Lego. В нём есть много типовых блоков. В Django тоже есть типовые блоки. Например, блок авторизации или блок подписки на рассылку применяется практически в каждом проекте. Созданные с помощью фреймворка веб-приложения состоят из таких независимых блоков.

Зрелость

Django был представлен в 2005 году. За 14 лет существования он сильно изменился и усовершенствовался. В фреймворке постоянно появляются новые возможности, а старые совершенствуются.

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

Административная панель

Административная панель Django автоматически генерируется при создании приложения. Это избавляет разработчика от необходимости создавать админку вручную.

С помощью сторонних приложений дефолтную консоль управления Django можно усовершенствовать и адаптировать под нужды своего проекта. Кроме того, фреймворк позволяет настраивать интерфейс дефолтной административной панели.

SEO-дружественность

Написанный на Python код получается читабельным и понятным даже неподготовленным людям. Это один из факторов, благодаря которым веб-приложения на Python считаются SEO-дружественными. Django генерирует семантические URL. Их также называют человеко-понятными URL или ЧПУ. В приложениях на Django легко реализуются другие функции, необходимые для поисковой оптимизации.

Расширяемость

Функциональность Django расширяется с помощью плагинов. Это программные модули, которые позволяют быстро добавить на сайт нужную функцию. В официальном каталоге есть сотни плагинов, которые позволяют легко реализовать на сайте sitemap.xml, управлять доступами, подключить платёжную систему Stripe и так далее. При необходимости вы можете отключать или заменять плагины, чтобы адаптировать приложение к текущим нуждам проекта.

Библиотеки

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

Django поддерживает использование библиотек при разработке веб-приложений. В число популярных библиотек входят:

  • Django REST Framework, который упрощает работу с API.
  • Django CMS — удобный инструмент для управления контентом.
  • Django-allauth — с его помощью реализуются функции регистрации, авторизации, управления учётными записями.

В Django реализовано объектно-реляционное отображение (ORM), которое обеспечивает взаимодействие приложения с базами данных (БД). ORM автоматически передаёт данные из БД, например, PostgreeSQL или MySQL, в объекты, которые используются в коде приложения.

Схема работы ORM

ORM ускоряет разработку прототипов и готовых веб-приложений на Django. Разработчику даже не нужно знать язык, который используется для взаимодействия с базами данных.

Также ORM позволяет быстро переключаться между базами данных с минимальными изменениями кода. Например, вы можете использовать SQLite на локальном сервере, а потом переключиться на MySQL на production-сервере. Однако для минимизации ошибок лучше использовать одну базу данных во время разработки и в продакшене.

Недостатки Django: не для маленьких проектов, не всегда предсказуемое поведение

У Django есть недостатки, как у любого инструмента. Основные недостатки фреймворка перечислены ниже.

Не подходит для небольших проектов

Возможности Django могут быть избыточными для небольшого проекта. Однако в экосистеме Python есть другие фреймворки, которые можно использовать в таких случаях. Например, если вы хотите сделать простой чат, лучше использовать Flask.

Нет поддержки WebSocket по умолчанию

Протокол WebSocket обеспечивает обмен данными между сервером и браузером в режиме реального времени. Django не поддерживает эту функциональность из коробки. Но проблему можно решить с помощью других инструментов, например, aiohttp.


Монолитность

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

Непредсказуемость поведения некоторых компонентов

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

В целом преимущества Django с запасом перекрывают недостатки этого фреймворка. Но всегда полезно знать об альтернативах, о которых пойдёт речь дальше.

Альтернативы Django

Фреймворки ускоряют разработку веб-приложений. И в экосистеме Python есть несколько фреймворков, которые можно рассматривать в качестве альтернативы Django. В их число входят Pyramid, Flask и Tornado. Все три инструмента подходят для работы как с масштабными проектами, так и с небольшими приложениями.

Также в качестве альтернативы можно рассматривать PHP-фреймворки, например, Laravel, Symphony или CakePHP. Например, Laravel подходит для работы с масштабными и маленькими проектами, и в этом фреймворке есть мощный движок шаблонов.

Если для вашего проекта критически важна безопасность, Laravel можно считать инструментом первого выбора. В нём реализованы мощные инструменты шифрования. Этот PHP-фреймворк работает с базами данных MySQL, PostgreSQL, SQL Server, SQ Lite.

Мастер Йода рекомендует:  Возвращение имени хоста вместо IP-адреса в переменной REMOTE_HOST

Ещё одна достойная альтернатива — фреймворк Ruby on Rails. Этот инструмент ускоряет создание веб-приложений и позволяет разработчикам сфокусироваться скорее на бизнес-логике, чем на коде. Кстати, наш сайт создан на Ruby on Rails.

Смотрите также: стрим с Кириллом Мокевниным «Создание сайта на Rails с нуля».

Достойные альтернативы Django существуют, а выбор инструмента всегда зависит от особенностей проекта, языка программирования, с которым вы работаете, и других факторов.

Заключение: почему стоит выбрать Django

Разработчики выбирают Django благодаря таким характеристикам:

  • Разделение бизнес-логики и визуальной части на уровне архитектуры.
  • SEO-дружественность.
  • Расширяемость.
  • Развитая инфраструктура: большое количество библиотек и плагинов.
  • Многочисленное и дружественное сообщество, благодаря которому легко искать ответы на сложные вопросы.

Если хотите поделиться опытом работы с Django, пишите в комментариях.

Адаптированный перевод статьи Why Django is the best web framework for your project by Ekaterina Zublenko and Angela Beklemysheva. Мнение авторов может не совпадать с мнением администрации «Хекслета».

Flask или Django? Выбираем Python вебфреймворк

Flask или Django?

Согласно данным опроса разработчиков Python в 2020, Django и Flask являются самыми популярными веб фреймворками среди разработчиков. Вы вряд ли ошибетесь, выбрав один из этих фреймворков для работы с вашим новым веб приложением. Хотя выбор того, какой из них будет лучше работать для вас и ваших целей, есть ряд явных отличий, которые нужно иметь в виду, перед тем как сделать выбор.

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

Разница между Flask и Django

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

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

  • Объект Request — Flask использует локальные потоки, а Django передает запрос там, где это нужно.
  • Формы — Django доступен со встроенными формами, которые интегрируются с ORM и админкой сайта. Flask не поддерживает формы по умолчанию, но вы можете использовать WTForms, чтобы заполнить этот пробел.
  • Базы данных — Django доступен со встроенной ORM и системой миграции, которая может управлять базами данных. Flask не может этим похвастаться, однако есть инструменты, такие как SQLAlchemy, которые предоставляют аналогичный функционал (или даже больше).
  • Аутентификация и привилегии пользователям — Django предоставляет приложение аутентификации, которое предоставляет реализацию по умолчанию для пользовательского управления и привилегий. Flask предоставляет безопасные куки в качестве инструмента вашей собственной реализации.
  • Панель администратора — Django включает в себя полностью интегрированный админ-интерфейс для управления данными приложения. Flask не имеет таких функций, но Flask-Admin — очень популярное расширение, которое можно использовать для создания аналогичного административного инструмента.

Что такое Django?

На сайте Django утверждают, что “Django упрощает создание веб-приложений, делает это быстрее, используя меньше кода”, и называют Django “веб-фреймворк для перфекционистов с дедлайнами”. Действительно, Django — это взрослый фреймворк, который (по-умолчанию) делает множество решений самостоятельно, так что у пользователя в распоряжении инструмент для создания типичных веб приложений.


Если вам подходит хотя бы большая часть этих инструментов и надстроек от Django, вы можете создать весьма сложное приложение и сделать это быстро.

Какие компании используют Django?

  • Instagram
  • Pinterest
  • Udemy
  • Coursera
  • Zapier

Что такое Flask?

На сайте Flask его описывают как “микрофреймворк для Python, основанный на Werkzeug, Jinja 2 и отличных решениях” и “веб-разработка, по капле за раз”. Еще раз, это дает вам хорошее представление о пространстве, которым Flask пытается заполнить переполненный мир веб-фреймворков Python.

В частности, Flask может вести себя как мини-фреймворк на Python, который хорошо обрабатывает ряд вещей, при этом оставляет место для решений, которые вы хотите принять при постройке собственного веб-приложения.

Какие компании используют Flask

  • Netflix
  • Lyft
  • Reddit
  • Zillow
  • MailGun

Сходства и различия между Flask и Django

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

Среда разработки веб приложений на Python

Сервер разработки

Django и Flask содержат сервера разработки, которые делают процесс создания веб приложения более удобным и быстрым. Они содержат функции, которые принято ожидать от взрослого веб-фреймворка, такие как возможность обработки запросов, подача статических файлов (для разработки), и обнаружить изменения в вашем коде для автоматического перезапуска, чтобы ваши изменения вступили в силу.

Утилиты командной строки

Django предоставляет утилиту командной строки, которая доступна с рядом административных команд. Одна из них запускает сервер разработки, в то время как другие используются для управления файлами статики и миграциями. Сторонние приложения могут улучшить утилиту командной строки, предоставляя собственные команды управления, кроме этого, может полезным (и легким) внесение ваших собственных команд.

10 лучших ресурсов для изучения Django. #[email protected]


Напомним, что Django — один из наиболее популярных фреймворков для создания веб-приложений на Python.

10 лучших ресурсов для изучения Django — Библиотека программиста

Не знаете с чего начать изучение Django? Тогда данная подборка ресурсов точно для вас! Изучив хотя бы один источник вы будете готовы использовать Django.

Комментарии (2)

Mik Fogel

Официальная документация рулит. Как по мне, так лучший ресурс.

Евгения Короткова

О проекте

Данный сайт является агрегатором контента из популярных социальных сетей. Добавление новых материалов производится в автоматическом режиме. Администрация проекта не несет ответственности за их содержание.

Django 2 в примерах. Антонио Меле

Книга предназначена для разработчиков, которые имеют базовые знания Python и хотят изучить Django на практике.
Возможно, вы совсем новичок в веб-разработке или уже немного знакомы с Django, но хотите погрузиться глубже.

Эта книга даст вам возможность поработать с различными подсистемами фреймворка, применить их в реальных проектах. Для комфортного изуче­ния необходимо знать основы программирования и иметь представление об HTML и JavaScript.

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

  • Установка Django и создание первого проекта;
  • Проектирование моделей и генерация миграций;
  • Реализация сайта для администрирования приложения;
  • Работа с QuerySet’ами и менеджерами моделей;
  • Реализация обработчиков, шаблонов и URL’ов;
  • Добавление постраничного вывода для списков;
  • Использование классов в качестве обработчиков запросов.
  • создавать Django-приложения, пригодные для многократного использования;
  • добавлению продвинутых функций, оптимизации кода, использованию кеширования;
  • интернационализации и реализации переводов в Django-проектах;
  • улучшению пользовательского опыта при работе с сайтом с помощью JavaScript и AJAX;
  • интеграции со сторонними социальными сетями;
  • интегрировать в Django-проекты возможности других приложений, таких как Redis и Celery;
  • работать с RESTful API.

Если вам понравилась эта книга поделитесь ею с друзьями, тем самым вы помогаете нам развиваться и добавлять всё больше интересных и нужным вам книг!

Создаём сайт на Django, используя хорошие практики. Часть 1: создаём django-проект

Я начинаю серию статей, посвященных разработке сайтов на Django. Информация для этих статей получена из собственного опыта (полтора года коммерческой разработки на Django, несколько мелких фриланс-проектов, часть проекта pythonworld.ru написана на Django).

Django — веб-фреймворк для создания сайтов, написанный на языке Python. Язык и является одним из основных его преимуществ, так как обеспечивает быстрое написание кода. Также Django имеет «батарейки в комплекте», что означает, что для многих распространённых задач уже есть написанная библиотека. На текущий момент Django считается основным фреймворком Python для разработки веб-сайтов и веб-сервисов.

Мы будем создавать сервис, который выгружает фриланс-проекты, фильтрует из них те, которые может выполнить Python-программист, а затем показывает пользователям.

У сайта fl.ru есть RSS-ленты (с точки зрения программиста, это XML-файлы, в которых содержится информация о новых проектах). Поскольку это достаточно удобный формат для машинной обработки, данные будем брать оттуда (впоследствие мы подключим и другие источники данных).

Здесь и далее я буду предполагать, что у вас установлено:

  • Linux-based система (Ubuntu 19.10 — прекрасный выбор),
  • Python 3.7 (на ubuntu 19.10 стоит изначально, на более ранние версии необходимо ставить отдельно,
  • PostgreSQL 11.

Ставим зависимости (PostgreSQL), и создаём директорию для проекта:

Создаём и активируем виртуальное окружение (изолированное окружение среды Python, которое позволяет нам использовать определенные, не зависящие от системы, версии приложений):

Далее предполагается, что все команды выполняются в активированном на предыдущем шаге виртуальном окружении.


Создаём проект. Поскольку мы хотим придерживаться хороших практик, будем пользоваться не стандартной django-admin startproject, а создадим проект с помощью шаблона cookiecutter, в котором уже настроены наиболее часто используемые фишки.

При создании проекта необходимо ответить на несколько вопросов

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

Теперь копия нашего кода доступна на странице нашего github-репозитория.

Установим локальные зависимости

Создаём базу данных в PostgreSQL

Теперь применим миграции

Дело в том, что все настройки, связанные с безопасностью, при создании проекта через cookiecutter хранятся не в файлах с исходным кодом, а в переменных окружения. Это более безопасно, но менее удобно. Каждый раз при перезапуске компьютера необходимо будет экспортировать все переменные окружения.

Есть способ хранения всех относящихся к проекту переменных окружения в специальном .env файле. Создадим в корне проекта файл под названием .env и содержимым

Теперь достаточно сделать

Далее я предполагаю, что каждый раз после активации виртуального окружения вы делаете export DJANGO_READ_DOT_ENV_FILE=true .

Заходим на 127.0.0.1:8000

Как видим, вместо стандартной django-страницы «It works!» cookiecutter предлагает страницу со ссылками на страницы авторизации и регистрации через django-allauth, а также автоматически подключен django-debug-toolbar, показывающий, сколько происходит запросов к различным компонентам и сколько времени они занимают.

Антонио Меле: Django 2 в примерах

Django 2 by example

Мы пришлем письмо о полученном бонусе, как только кто-то воспользуется вашей подборкой. Проверить баланс всегда можно в «Личном пространстве»

Мы пришлем письмо о полученном бонусе, как только кто-то воспользуется вашей ссылкой. Проверить баланс всегда можно в «Личном пространстве»

Аннотация к книге «Django 2 в примерах»

Создавайте мощные и надежные веб-приложения на Python с нуля!
Создание Django-приложения, пригодных для много-кратного использования
Изучение продвинутых функций, оптимизации кода, использованию кеширования
Интернационализации и реализации переводов в Django-проектах
Улучшение пользовательского опыта при работе с сайтом
Взаимодействие со сторонними социальными сетями;
Интеграция в Django-проекты возможности других приложений
Django — это мощный Рython-фреймворк для веб-приложений, который поощряет быстрое развитие и чистый, прагматичный дизайн, предлагает относительно простое обучение. Это делает его привлекательным как для новичков, так и для опытных разработчиков.
В рамках данной книги вы пройдете весь путь создания полноценных веб-приложений с помощью Django. Вы научитесь работать не только с основными компонентами, предоставляемыми фреймворком, но и узнаете, как интегрировать в проект популярные сторонние инструменты. В книге описано создание.

Мастер Йода рекомендует:  Wordze - новый пакет для исследования ключевых слов

Создавайте мощные и надежные веб-приложения на Python с нуля!
Создание Django-приложения, пригодных для много-кратного использования
Изучение продвинутых функций, оптимизации кода, использованию кеширования
Интернационализации и реализации переводов в Django-проектах
Улучшение пользовательского опыта при работе с сайтом
Взаимодействие со сторонними социальными сетями;
Интеграция в Django-проекты возможности других приложений
Django — это мощный Рython-фреймворк для веб-приложений, который поощряет быстрое развитие и чистый, прагматичный дизайн, предлагает относительно простое обучение. Это делает его привлекательным как для новичков, так и для опытных разработчиков.
В рамках данной книги вы пройдете весь путь создания полноценных веб-приложений с помощью Django. Вы научитесь работать не только с основными компонентами, предоставляемыми фреймворком, но и узнаете, как интегрировать в проект популярные сторонние инструменты. В книге описано создание приложений, которые решают реальные задачи, используют лучшие практики разработки. После прочтения этой книги у вас будет понимание того, как работает Django, как создавать практичные веб-приложения и расширять их с помощью дополнительных инструментов.
Издание будет полезно всем разработчикам приложений.

Alexander Borshak

14 марта 2020 г.

Хорошие книги по Django

Сейчас есть много книг по Django — в основном, правда, англоязычных.

Но чтобы хороших, и для начинающих — таких 2.

Это неофициальное, 3-е издание книги Адриана Головатого и Джейкоба Каплан-Мосса, разработчиков Django. Данное (т.е. 3-е) издание книги написано уже сторонним автором, но в основе лежит превосходный материал оригинальной книги. Глава за главой объясняется, как работает фреймворк, как та или иная задача выполняется без фреймворка, затем постепенно вносятся улучшения в алгоритм, и через несколько итераций выполнение приводится к тому, как оно работает в Django. Это дает отличный фундамент для дальнейшей работы.

В книге рассмотрена версия Django 1.8 LTS (то есть версия с длительным термином поддержки). На сайте книга доступна как в виде отдельных глав, так и в виде PDF для свободного скачивания (но в PDF только первые 13 глав, остальные — а их больше 20 — можно прочитать только онлайн. Язык — английский.

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


Кстати, есть перевод этого материала на русский. В онлайн он доступен, к примеру, вот здесь; но если эта ссылка перестанет работать, то есть и актуальная версия от переводчика на GitHub, правда для просмотра ее надо конвертировать в HTML. В любом случае — огромное спасибо Максиму Джангирову за его труд по переводу.

Создание сайта на Python – Django: руководство к старту разработки

Published 10.10.2020 · Updated 18.01.2020

Хотите создать сайт самостоятельно? У вас нет навыков программирования и ни малейшего понимания о том, что такое HTML, CSS, JavaScript и язык программирования Python (или PHP на худой конец)? Тогда данная публикация точно не для вас! Для создания сайта на Python-Django потребуется определенный уровень понимания как работает сайт, какие технологии обеспечивают его функционирование и хотя бы базовое понимание языка программирования Python. И это я еще не говорю о током важном элементе как дизайн! Если у вас нет указанных навыков, то создание и раскрутка сайта от Seo Evolution поможет вам решить задачу открытия Интернет-представительства для вашего бизнеса или персонального бренда. Для тех же, кто хочет попробовать свои силы и создать свой сайт самостоятельно я предлагаю нижеследующую информацию.

Почему Python?

Python является одним из наиболее динамично развивающихся языков программирования в мире благодаря своей простоте и универсальности. Он достаточно прост в изучении и понимании синтаксиса. При этом достаточно мощный по своим возможностям. На нем можно писать как простенькие скрипты, так и сложные приложения и даже некоторые виды игр. Еще одним плюсом языка Python является его кросс-платформенность, т.е. написанный код будет работать на любой операционной системе и на устройствах различного типа – от компьютера до смартфона. Главное – установить интерпретатор языка Python на устройство в нужной версии и можно выполнять код. Если вы новичок в программировании и разработке программного обеспечения, то изучение языка Python будет отличным вариантом для применения получаемых знаний на практике, а мощь и универсальность языка позволит легко переключаться между проектами различного назначения без необходимости кардинального переобучения.

Почему Django?

Django – это веб-фреймворк. Что такое фреймворк? Говоря проще – набор стандартного инструментария для создания сайтов. Фреймворк может включать реализацию стандартных функций, которые часто используются при создании сайта и служит для ускорения процесса разработки. При этом фреймворк – это не конструктор, а всего лишь база, позволяющая быстро запустить сайт и обеспечить его работу. Чтобы сделать даже простой сайт с использованием Django необходимо понимание HTML/CSS и немного Python. Благодаря отличной документации создать сайт на Django можно даже без глубоких знаний программирования, но если планируете развиваться в профессиональном плане и создавать качественные сайты, лучше уделить достаточно времени изучению HTML, CSS, JavaScript и Python. После продолжить развитие изучением дополнительных технологий. Выбор Django в качестве основы сайта оправдан, если вы планируете постоянное его усовершенствование, т.к. он позволяет не тратить время на рутину и реализацию базового функционала, а сосредоточиться на главном.

Как начать создание сайта на Python Django?

Всего несколько простых шагов и ваш компьютер будет готов к созданию сайтов с использованием Python и Django.

Шаг 1. Установка интерпретатора Python. Его можно скачать с сайта python.org. Если вы не знаете, какая версия Python вам нужна, то скачивайте последнюю для вашей версии операционной системы и следуйте инструкции по установке на указанном сайте.

Шаг 2. Установка редактора. В принципе, можно ограничиться и простым текстовым редактором, но для удобства лучше установить IDE (интегрированную среду разработки). Я рекомендую использовать PyCharm Community Edition. Это бесплатная версия PyCharm с широкими возможностями для программирования на языке Python. Есть версии для Windows, Linux и macOS.

Шаг 3. Начинаем создание сайта на Django. Для новичков на сайте djangoproject.com есть понятное руководство для знакомства и старта разработки с использованием данного фреймворка. Документация на английском, так что знание языка крайне желательно. Да и вовсе обязательно, если хотите добиться успехов в этой сфере.

Ну что же, старт разработки на Python Django не так уж и сложен, но и нет так уж и прост… Главное поставить цель и идти к ней. Для этого читайте следующий пост серии о разработке сайта на Django и Python – Установка Django и создание проекта.

Основы использования фреймворка django при построении Web-сайта

Планирование и реализация Web-сайтов всегда сопровождается большими затратами усилий. Django представляет собой один из лучших на сегодняшний день фреймворков, который позволяет быстро вести разработку высокопроизводительных и полнофункциональных сайтов. С помощью django легко выстаиваются масштабируемые и легко расширяемые приложения для Web с дизайном любой степени сложности.

Абстрагируясь от низкоуровневого процесса Web-строительства, django позволяет разработчикам быстро создавать основанные на базах данных динамичные Web-сайты. Одним из основных преимуществ django является переносимость созданных на ее основе продуктов в силу переносимости их базиса – языка высокого уровня Python.

Произносится слово django мягко, без выраженного звука «д», как «жан-го».

Django включает в себя Model View Controller (MVC) – инструмент, позволяющий разделить общую архитектуру на отдельные части. При этом управляющая логика разделена на три отдельных компонента так, что модификация одного из них оказывает минимальное воздействие на другие части. К таким компонентам относят разделяемые данные, логику и слои визуализации (view layers). В общем случае такая концепция позволяет разделить разработку информационного наполнения на уровне базы данных и разработку Web-страниц.

Django базируется на классе Python django.db.models.Model , который задает данные модели так, чтобы они были пригодны к использованию на Web-сайтах. Эти данные определяются соответствующими атрибутами объектов, которые сохраняются в базе данных в процессе работы. При создании сайта создается подкласс класса Model и добавляется поле членов в класс для задания специфических данных.

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

Изменение отображения содержимого в зависимости от принимаемого URL-запроса является многоступенчатым процессом. Когда django-сервер получает URL-запрос, он парсит его и, используя предыдущие установки шаблонов, определяет, какой участок кода Python будет выполняться для требуемого отображения.

Парсер шаблонов в django позволяет самостоятельно настраивать свои шаблоны, которые используют функции отображения Web-страниц при построении ответа на URL-запросы. Это позволяет разработчикам Python сфокусироваться на создании данных, которые будут отображаться, а программистам HTML – сфокусироваться на дизайне Web-страниц.

Конфигурирование settings.py файла

Основным конфигурационным файлом при построении Web-сайта на django является файл settings.py. При создании каждого нового проекта django автоматически добавляет в него новый файл settings.py в корневую директорию проекта. Файл содержит конфигурационные опции для баз данных, установленных приложений и другие многочисленные параметры. Обычно этот файл видоизменяется при задании глобальных конфигурационных свойств Web-сайта.

Для доступа к этому файлу необходимо импортировать настройки, как в приведенном ниже примере:

Примечание. Не надо пытаться редактировать настройки файла settings.py «на лету», путем правки Python кода. Это может иметь непредвиденно плохой или неопределенный результат.

Использование утилиты manage.py


Любой файл, автоматически добавляемый к проекту, создается утилитой manage.py. Кроме того, эта утилита используется в любых задачах, связанных с разработкой, администрированием и тестированием проекта. Ниже приведен основной перечень команд, используемых manage.py в своей работе:

  • startproject – создание нового django-проекта. Создается директория со всеми необходимыми файлами проекта;
  • startapp – создание нового приложения для django-проекта;
  • syncdb – синхронизация данных модели проекта с SQL-базой данных, поддерживающей проект;
  • runserver – старт сервера разработки;
  • shell – запуск оболочки интерпретатора Python для доступа к данным проекта, включая и базу данных;
  • dbshell – запуск SQL-клиента командной строки для доступа к базе данных.

Как правило, утилита используется из корневой директории проекта. Более подробно об этой утилите можно узнать на сайте http://www.djangoproject.com/documentation/django-admin.

Сервер разработки django

Django поставляется с встроенным легким HTTP-сервером для тестирования разрабатываемых проектов. После установки django не нужно будет искать и разворачивать какой-либо иной Web-сервер для тестирования кода. Встроенный сервер тратит мало системных ресурсов и очень функционален для апробации нового сайта.

Для старта сервера необходимо, находясь в корневой директории проекта, выполнить команду: python manage.py runserver .

Примечание. Для остановки сервера нажмите комбинацию клавиш Ctrl+Break или Ctrl+C.

Административный интерфейс

Django поставляется с удобным административным интерфейсом, позволяющим создавать, изменять и просматривать данные в административном контексте. Доступ к административному интерфейсу возможен из Web-браузера при введении URL вида: http://127.0.0.1:8000/admin/. При этом открывается окно, как показано на рисунке 4.

Рисунок 4.

Применяя различные виды доступа к элементам интерфейса, можно получить возможность управлять пользователями, сайтом и другим содержимым.

Установка фреймворка django

До начала установки django необходимо убедиться в том, что в системе установлена версия Python 2.3 или выше. Получить Python можно по адресу http://www.python.org/download. После этого необходимо убедиться, что в системе установлена СУБД MySQL. Наличие какой бы то ни было СУБД в системе не является обязательным условием для установки и настройки django. В этой статье будет использоваться в качестве примера СУБД MySQL, поэтому будем считать, что она уже установлена и настроена.

Мастер Йода рекомендует:  Как отключить комментарии в WordPress (полное руководство)

Django можно получить с сайта разработчиков и воспользоваться либо официальным релизом, либо версией для разработчиков. В первом случае нужно скачать дистрибутив с http://www.djangoproject.com/download, а во втором – воспользоваться SVN следующим образом:

После этого следует запустить интерпретатор Python и выполнить команду:

Выполнение последней команды должно показать в консоли интерпретатора вывод информации о версии django, что свидетельствует о правильном процессе установки.

Во втором случае нужно распаковать скачанный тарбол командой:

затем выполнить серию команд:

В результате в консоли интерпретатора мы должны получить номер версии фреймворка. (рисунок 1), что тоже свидетельствует о нормальном ходе процесса.

Рисунок 1.

Создание первого проекта на django

Рассмотрим создание простого проекта, производя все действия по конфигурированию из командной строки системы Ubuntu Linux.

Для начала необходимо перейти в ту поддиректорию, где будет находиться сам проект.

Создайте директорию с именем iFriends (так будет называться проект примера).

Перейдите во вновь созданную директорию и там выполните команду:

Эта команда создаст новый проект и поместит в него все необходимые файлы. Затем следует запустить HTTP-сервер разработки.

Запуск сервера разработки

Для запуска HTTP-сервера, обеспечивающего разработку проекта, исполните команду:


Правильный процесс запуска ознаменуется соответствующей строкой в консоли и записью о нулевом количестве ошибок.

Примечание. Если при выполнении этой команды возникнет ошибка, говорящая о том, что порт для сервера уже занят другим приложением (рисунок 2), то повторите команду, назначив другой порт HTTP-серверу: python manage.py runserver 0.0.0.0:9000, что заставит сервер прослушивать все имеющиеся в системе ip-адреса по порту 9000.

Рисунок 2.

Доступ к серверу можно проверить при переходе в браузере по URL: http://127.0.0.1:8000/ или (в последнем случае) http://127.0.0.1:9000/.

Если все было сделано правильно и не было ошибок, то в браузере можно будет увидеть картинку, как на рисунке 3.

Рисунок 3.

Создание и конфигурирование базы данных

До начала конфигурирования БД необходимо обеспечить в MySQL поддержку именования таблиц буквами верхнего регистра. Для этого надо открыть файл /django/db/backends/__init__.py и в него добавить:

Конфигурирование БД состоит из ряда SQL-директив, написанных ниже:

После создания пользовательской учетной записи и базы данных для django, нужно сконфигурировать файл settings.py для задания базовых настроек. Этот файл представляет собой скрипт на языке Python, который в процессе своего выполнения сконфигурирует все основные параметры проекта. Задайте в файле settings.py следующие установки:

Синхронизация данных проекта с базой данных

Процесс синхронизации создает в базе данных все необходимые таблицы для поддержки проекта. Внесите в settings.py следующие изменения:

Для синхронизации данных проекта с базой данных нужно выполнить определенные шаги в следующем порядке.

Вначале остановите HTTP-сервер разработки. Затем перейдите в рутовую директорию проекта iFriends. Находясь там, введите команду в консоли:

В появившейся подсказке задайте административную учетную запись и пароль для Web-сайта. После завершения этой процедуры django будет иметь возможность корректно использовать аутентификацию, сессии, и содержимое таблиц базы.

Установка приложения

Теперь нужно установить приложение, которое будет использовать настроенные и синхронизированные данные в СУБД. В качестве примера зададим имя этому приложению как People. Оно должно хранить данные о пользователях создаваемого сайта.

Находясь в рутовой директории проекта iFriend, выполните команду в консоли:

Эта команда создаст новое приложение с именем People, что выразится в появлении новой поддиректории People внутри iFriend и серии файлов __init__.py models.py и views.py.

Далее нужно создать класс Person в модели People путем изменения скрипта models.py. Нужно добавить в файл следующие строки:

Активизация модели Person

Для активизации модели Person нужно внести некоторые изменения в файл iFriends\settings.py. В раздел INSTALLED_APPS внести:

затем сохранить файл и выполнить синхронизацию с базой данных:

процесс синхронизации создаст необходимые таблицы в базе iFriends для приложения People.

Добавление данных, используя API

Здесь будет рассмотрен процесс использования django shell и интерфейса базы данных для объекта Person в таблицу People. Django shell представляет собой Python shell, дающую возможность получить доступ к API базы данных, используя при этом django как посредника.

Нужно перейти в рут-каталог проекта iFriends. Затем открыть django shell командой:

после чего импортировать класс Person из People-пакета:


Затем создать объект Person с именем “p”:

и сохранить его:

Далее, используя функцию Person.objects.all(), проверить факт создания этого объекта:

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

Конфигурирование URLConfFile

Теперь рассмотрим конфигурирование URLConfFile, который задает порядок доступа к установленному приложению через Web. URLConfFile представляет собой Python-скрипт, который описывает специфические просмотрщики или «вьюхи» (views), доступные через вводимые в браузере URL. Когда django-сервер получает такой URL-запрос, он парсит запрос на шаблоны, содержащиеся в URLConfFile. Потом этот запрос транслируется в специфическую Python-функцию, которая и исполняет views.py-файл.

Местонахождение URLConfFile задается в параметре ROOT_URLCONF файла settings.py. По умолчанию местонахождением является рут-каталог проекта.

Отредактируем файл iFriends\urls.py, внеся в строку с urlpatterns следующий код:

Затем файл можно сохранить.

После редактирования URLConfFile нужно добавить «вьюхи» (views) в приложение.

Создание простого view

Откроем для редактирования iFriends/People/views.py. Добавим в этот файл следующий код:

После этого файл можно сохранить. Затем надо сменить каталог на корневой для проекта iFriends и там дать команду на запуск HTTP-сервера разработки:

В браузере перейти по URL: http://127.0.0.1:8000/People ,где можно будет увидеть Web-страницу, как на рисунке 5.

Рисунок 5.

Таким образом, был создан django-проект с именем iFriends, в рамках которого сконфигурирован доступ в СУБД MySQL. Затем создано приложение с именем People, добавлен класс Person, а в базу был внесен объект Person. Затем было сконфигурировано поведение URL-парсера для поддержки «вьюхи» и добавлен необходимый код, который в рамках этой «вьюхи» отображал список объектов класса Person.

Выводы

В статье рассмотрены вопросы использования фреймворка django как инструмента построения Web-сайта. Последовательно дан общий обзор django, понятий моделей, шаблонов и просмотрщиков («вьюх»). Рассмотрен процесс установки и настройки django, ее конфигурационных файлов. В пошаговом режиме проведен экскурс через весь процесс создания простой, но работоспособной Web-страницы с использованием django. Весь материал снабжен примерами и исходным кодом на языке Python.

Django: разработка веб-приложений на Python

Дата публикации: 2020-10-12

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

Python — отличный выбор веб-разработчика

Одним из наиболее распространённых языков программирования для веб-разработки является Python, который в просторечии обрел название «Питон». Его нельзя назвать чистым веб-языком, как, скажем, PHP. Это универсальный и высокоуровневый PL, на котором можно создать все: от калькулятора до больших монолитных приложений. Его применение в веб обусловлено тем, что с его помощью создавать нетрудно и быстро. Ну, а если сравнивать с PHP, то синтаксис в нем более простой, с упором на широкую функциональность.

Одной из сильных сторон «Питона» для веб-разработки является наличие высокофункциональных библиотек. Здесь средства для работы с интернетом, XML-файлами и прочим. Ну, а инструменты для взаимодействия с различными операционными системами позволяют писать приложение под любую современную «ось». Также у Python есть средства для того, чтобы написанный вами код заработал быстрее даже без использования сторонних оптимизаторов. Два модуля — «profile» и «timeit» — дают возможность для расчета времени работы программы, чтобы впоследствии создать вариант, который будет выполняться быстрее всего.

По мощности язык часто сравнивают с Java, Perl и Ruby. Как и Python, эти языки подходят для объектно-ориентированного программирования и используются в веб-разработке. Так же, как и на JavaScript, на Питоне можно создавать пользовательские сценарии. Язык столь функционален, что некоторые апологеты создают веб-приложения исключительно на Python. Он широко используется в веб-разработке компанией Google и Facebook. К примеру, веб-версия Instagram создана полностью на «Питоне», в то время как для мобильных приложений он подходит не очень хорошо. Для Python характерно использование больших ресурсов и сравнительно медленное выполнение кода. Для ускорения языка предпринят ряд решений, большинство из них — успешные. Одним из них является использование фреймворка.

Как создать сайт самому?

Какие технологии и знания необходимы сегодня, чтобы создавать сайты самостоятельно? Узнайте на интенсиве!

Прогрессивные работают через фреймворк

Когда вы работаете с языком программирования на уровне «Hello, World!», сложно представить, что такое фрейм, и для чего он нужен. Что ж, пора познакомиться с этим явлением, так как дальнейшее развитие вряд ли возможно без этих помощников программиста.

Фреймворки — это наборы для работы с программным кодом. Они одинаково популярны как в веб-разработке, так и в создании программного обеспечения. Это своеобразный каркас, который ставит в определенные рамки. Не то чтобы они существенно снижают гибкость кодинга — скорее, помогают меньше ошибаться.

Основными преимуществами использования фреймворков программисты называют:

оптимизацию труда. Как только вы освоили фреймворк (а это непросто: нужно понять, как мыслил программист, который создавал «каркас»), все становится проще. С виду сложные, программы создаются быстро. Но до этого мастерства быстрого кодинга в веб-разработке нужно идти годами;

сухость и чистота. Звучит не очень, но именно так характеризуют код, написанный с применением фреймворка. Он не содержит «двойных истин» и не требует последующей переработки.

Но и здесь не обошлось без трудностей. Первая в том, что, работая долгое время с конкретным фреймворком — допустим, с Django (о нем ниже) — вы затачиваете мышление под фрейм. Как только вы придете в компанию, которая реализует Python через Flask, придется переучиваться, причем не день и не два. Но, в целом, это не критично. Более весовым аргументом является безопасность. Если злоумышленник знает, какой фрейм вы использовали, то, по сути, понимает, как построено приложение, и может нанести ущерб.

Джанго — против «мокрого» кода

Одним из наиболее распространённых фреймворков для Python в плане веб-разработки является Django. Тот «Питон», который применяют компании Google и Facebook, тоже реализован на Django, как и большинство других веб-проектов.

Django хорош для веб-программирования тем, что следует принципу DRY. Это означает написание кода, который не повторяет сам себя. Если вы учились программированию, то понимаете, о чем идет речь. Один и тот же процесс можно описать по принципу DRY (don’t repeat yourself) и WET (we enjoy typing). Для быстродействия и удобочитаемости намного лучше писать короткий код, который не будет повторяться. К тому же, редактировать функции программы впоследствии будет легче. Именно потому Django является выбором №1 для веб-разработки.

Как создать сайт самому?

Какие технологии и знания необходимы сегодня, чтобы создавать сайты самостоятельно? Узнайте на интенсиве!

Хотите узнать, что необходимо для создания сайта?

Посмотрите видео и узнайте пошаговый план по созданию сайта с нуля!

Добавить комментарий