Российский Новый Университет
Опубликован: 25.01.2016 | Доступ: свободный | Студентов: 2234 / 161 | Длительность: 16:40:00
Лекция 1:

Введение в Django

Лекция 1: 12 || Лекция 2 >

Цель лекции: Узнать о новейших достижениях веб-разработки; узнать о том, что представляет собой Django; узнать о стандартных возможностях Django; узнать о поддерживаемых базах данных; ознакомиться с планом на следующие лекции

Ключевые термины: Django, веб, шаблон, MVC, SQLite, окружение, разработка, ORM, система, база, фреймворк, open source, сервис, данные,

Добро пожаловать в разработку на Django!

Django – это фреймворк для веб-разработки, а веб-разработка - это навык. Чтобы прокачать какой-либо навык, можно следовать известному правилу "10000 часов", согласно которому, если вы потратили определенное время на отработку какого-либо навыка, то непременно станете экспертом.

Но даже при наличии времени без четкого плана все может пойти не так. Совсем не так.

Итак, как же лучше достигнуть своей цели? Разбить основную задачу на подзадачи, и оттачивать до мастерства навык в каждой из них. (Программисты называют это правило "разделяй и властвуй". Вам нужно выделить промежуточные навыки, чтобы затем научиться им. Чем более обращаться мысленно к промежуточным навыкам, тем более важно стать мастером.

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

Почему веб-разработка находится на первом месте?

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

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

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

Что изменилось в веб-разработке?

Веб-разработка совершила большой прогресс за последние годы. Вот некоторые из достижений:

  • JavaScript: развивался от написания комплексных селекторов до манипуляции объектной моделью документа(DOM). С помощью библиотек, таких как jQuery и Angularjs, можно создавать динамичные фронтэнды намного проще. JavaScript развивался для того, чтобы построить готовый к производству серверный фреймворк называемый node.js.
  • Браузеры: Развитие от простого, как брешь в стене продукта до продукта, способного к "умному" восстановлению соединения, где вы можете указать ему, в какой вкладке воспроизводить музыку или безупречно рендерить игру в реальном времени.
  • Open Source: Использование кода, написанного кем-то, наконец-то более предпочтительно, чем написание собственного кода. Это помогает множеству проектов перестать изобретать колесо, Django один из лучших примеров этого.
  • API в качестве остова: Веб-технологии сегодня могут быть не такими же, как и завтра, или данные могут представляться не таким же образом или размещаться не в таких же местах как и завтра. Другими словами, больше устройств появляется с различными размерами экранов. Таким образом, всегда лучше отделить текст от визуальной составляющей.
  • Пользовательский интерфейс: В прошлом, команда разработки тратила драгоценное время на создание дизайна пользовательского интерфейса. Но такие фреймворки, как Bootstrap и Foundation сделали процесс веб-разработки намного проще.
  • Ловкая разработка: Быстрое продвижение в цикле разработки приветствуется большинством компаний-стартапов. Тем, кто только начинает цикл разработки программного обеспечения, и не требуется полный цикл разработки. Между тем, дальнейшее развитие тоже важно. Фреймворк Django самый удобный фреймворк для такого рода разработки. Как гласит слоган Django, "веб-фреймворк для идеалистов с тупиками".
  • Эволюция облачных вычислений: Она сыграла значительную роль в конце хостинга веб-приложений и позволила быстрее и относительно дешевле решать вопросы онлайн-доступа.
  • Рождение NoSQL: Сокращая сильнее издержки, NoSQL дал свободу таким проектам как Store it Now, Find the Value Later и Store Anything Together, позволив облакам быть дружелюбными и более терпимым к ошибкам разработчиков.

Шаблон MVC в веб-разработке

В этом курсе вы научитесь использовать модель-представление-контроллер (MVC) веб-феймворка Django, написанного на Python, мощном и популярном языке программирования.

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

Преимущества этого шаблона очевидны. С ним дизайнеры могут работать над интерфейсом, не беспокоясь о хранении данных или управлении ими. А разработчики способны программировать логику привязки данных, не вдаваясь в детали представления. Как результат, шаблон MVC быстро нашел свой путь среди веб-языков, и серьезные веб-разработчики стали использовать его поверх старых техник.

Эта книга сосредоточена на использовании Django и Python для создания микроблогингового Веб 2.0 веб-приложения со множеством обычных для сегодняшнего дня особенностей, которые можно найти на сайтах, созданных по методике Веб 2.0. Эта книга следует обучающим стилем, когда представляет концепции и объясняет решение проблем. Это не означает, что это справочник ссылок на Python и Django. Книга лишь аккумулирует знания о стандартах веб-технологий (HTML и CSS) и языке программирования Python для дальнейшей работы. Django, с другой стороны, объясняет, как мы создаем особенности, по главам, для достижения конечной цели – работающего приложения Веб 2.0.

Многоязыковая поддержка

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

Почему Django?

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

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

Во-первых, Django содержит набор тесно связанных компонентов. Все эти компоненты были разработаны самой командой разработки Django. Django изначально был фреймворком "для себя" и предназначался для управления серией ориентированных на новости сайтов. Позже его код был опубликован в Интернете, и команда Django стала развивать его по модели Open Source. Из-за этого его происхождения, компоненты Django были спроектированы для интеграции, многократного использования, и скорости с самого начала.

Компонент базы данных Django, объектно-реляционное отображение(ORM), перекидывает мостик между моделью данных и движком базы данных. Он поддерживает огромное количество систем баз данных, и переключение от одного движка базы данных к другому представляет собой изменение конфигурационного файла. Это дает огромную гибкость в случае, если решение состоит в переключении с одного движка базы данных на другой. Если у вас возникли проблемы, то вы можете скачать драйвер (в виде бинарного пакета Python) здесь: http://www.lfd.uci.edu/~gohlke/pythonlibs.

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

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

Все стандартные возможности, которые традиционно содержит веб-фреймворк, доступны в Django. Они включают в себя:

  • Движок, включающий шаблоны и фильтрацию текста с простым, но расширяемым синтаксисом.
  • Генерация форм и API для проверки.
  • Расширяемая система аутентификации.
  • Система кэширования для ускорения производительности приложений.
  • Фреймворк для фидов для генерации RSS-фидов.

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

Внутри Django

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

Django – это зрелость

Многие компании прямо используют Django в своем производстве и с постоянными пожертвованиями от разработчиков по всему миру. Самые известные сайты включают в себя Pinterest и Quora. Это дает с полным правом считать этот веб-фреймворк идеальным.

Батареи в комплекте

Django следует философии языка Python "Батареи в комплекте", которая подразумевает, что Django поставляется со множеством дополнительных опций и возможностей, которые важны при решении проблем стоящих перед лицом веб-разработчика.

Тесная интеграция между компонентом и модульным фреймворком

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

Шансы на то, что существующий популярный проект, у которого есть интерфейс прикладного программирования(API) или завершенный плагин для Django, очень малы.

Объектно-реляционное отображение

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

Чистый URL дизайн

В Django очень мощная и гибкая URL-система. Она позволяет определить шаблоны для URL в вашем приложении и определить Python-функции применимо к каждому шаблону.

Автоматический интерфейс администрирования

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

Продвинутое окружение разработки

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

Что нового в Django 1.6 и 1.7?

В последнем релизе, версия 1.6, Django получило большие изменения, и вот некоторые из них:

  • С этим релизом официально поддерживается Python 3, что означает стабильность и возможность использовать в производстве.
  • Простой лэйаут. Добавлены новые настройки по умолчанию, Административный шаблон Django добавлен по умолчанию, а пакет Сайты удален.
  • Добавлено предотвращение кликджекинга.
  • SQLite 3 – база данных по умолчанию.
  • Старый API устарел, самое большое изменение в улучшении механизма транзакций. В слое базы данных включено по умолчанию автоподтверждение.
  • В этом релизе соединение с базой данных постоянное. Вплоть до Django 1.5, новое соединение создавалось для каждого HTTP-запроса, в Django 1.6 одно и тоже соединение используется для новых запросов.
  • Временные зоны по умолчанию – UTC.
  • Простая интеграция приложений.
  • Масштабируемость.
  • Мощный механизм конфигурации.
  • Если у вас нет модели, то вам не нужен файл model.py.
  • Новый метод добавлен к подклассам.
  • Возможно использование курсора в качестве контекстного менеджера.
  • Добавлено много возможностей для интернационализации, форм и загрузки файлов.
  • Появилось улучшенное предотвращение CSRF.
  • Кроме этого, представлено бинарное поле, по типу полей ввода HTML 5 (email, URL и номер).

Вы можете прочитать о новых добавленных особенностях в подробностях здесь: https://docs.djangoproject.com/en/1.7/releases/1.7/.

Лекция 1: 12 || Лекция 2 >
Константин Боталов
Константин Боталов

Вроде легкие вопросы и ответы знаю правильные, но система считает иначе и правильные ответысчитает неправильными. Приходится выполнть по несколько раз. Это я не правильно делаю или тест так составлен?

Владимир Филипенко
Владимир Филипенко

Листинг показывает в 4-ой лекции, что установлен Django 1.8.4. Тут же далее в этой лекции указаны настройки, которые воспринимает Django 1.7 и младше.