Введение в Django
Покупка
Тематика:
Программирование и алгоритмизация
Издательство:
ИНТУИТ
Год издания: 2016
Кол-во страниц: 261
Дополнительно
В курсе изучается фреймворк Django, его основные возможности и некоторые прикладные задачи его использования в современной веб разработке.
Курс посвящен современному фреймворку языка программирования Python - Django, о его базовых возможностях, особенностях, способах интеграции с другими веб библиотеками. Раскрываются подходы использования современной архитектуры построения веб каркасов MVC. Описываются способы использования сторонних пакетов при проектировании приложений на Django. Особое внимание уделяется практическим вопросам использования базовых возможностей фреймворка.
Курс является существенной переработкой книги "Learning Djando Web Development” (Sanjeev Jaiswal, Ratan Kumar).
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
В. В. Крылов С. Б. Вепрев Введение в Django ^ИНТУИТ / НАЦИОНАЛЬНЫЙ ОТКРЫТЫЙ УНИВЕРСИТЕТ
С.ИНТУ ИТ У НАЦИОНАЛЬНЫЙ ОТКРЫТЫЙ УНИВЕРСИТЕТ Введение в Django 2-е издание, исправленное Вепрев С.Б. Крылов В.В. Национальный Открытый Университет “ИНТУИТ” 2016 2
Введение в Django/ С.Б. Вепрев, В.В. Крылов - М.: Национальный Открытый Университет “ИНТУИТ”, 2016 В курсе изучается фреймворк Django, его основные возможности и некоторые прикладные задачи его использования в современной веб разработке. Курс посвящен современному фреймворку языка программирования Python - Django, о его базовых возможностях, особенностях, способах интеграции с другими веб библиотеками. Раскрываются подходы использования современной архитектуры построения веб каркасов MVC. Описываются способы использования сторонних пакетов при проектировании приложений на Django. Особое внимание уделяется практическим вопросам использования базовых возможностей фреймворка. Курс является существенной переработкой книги “Learning Djando Web Development” (Sanjeev Jaiswal, Ratan Kumar). (c) ООО “ИНТУИТ.РУ”, 2016-2016 (c) Вепрев С.Б., Крылов В.В., 2016-2016 3
Введение в Django Цель лекции: Узнать о новейших достижениях веб-разработки; узнать о том, что представляет собой Django; узнать о стандартных возможностях Django; узнать о поддерживаемых базах данных; ознакомиться с планом на следующие лекции Ключевые термины: Django, веб, шаблон, MVC, SQLite, окружение, разработка, ORM, система, база, фреймворк, open source, сервис, данные, Добро пожаловать в разработку на Django! Django - это фреймворк для веб-разработки, а веб-разработка - это навык. Чтобы прокачать какой-либо навык, можно следовать известному правилу “10000 часов”, согласно которому, если вы потратили определенное время на отработку какого-либо навыка, то непременно станете экспертом. Но даже при наличии времени без четкого плана все может пойти не так. Совсем не так. Итак, как же лучше достигнуть своей цели? Разбить основную задачу на подзадачи, и оттачивать до мастерства навык в каждой из них. (Программисты называют это правило “разделяй и властвуй”. Вам нужно выделить промежуточные навыки, чтобы затем научиться им. Чем более обращаться мысленно к промежуточным навыкам, тем более важно стать мастером. Так как вы решили выучить новый навык, я как автор этой книги должен сделать замечание, что вы уткнетесь в книгу в те первые часы, когда Вами овладеет подавленность. Подавленность случится, когда вы выучите новую вещь., и поверьте мне: когда вы чувствуете, что все настолько просто, вы делаете все правильно. Почему веб-разработка находится на первом месте? Веб-сайт создает первое впечатление о компании или продукте непосредственно в глазах аудитории. Каждый стартап теперь имеет свой сайт, который помогает донести свою идею до потенциальных клиентов или инвесторов. Все теперь в сети; вместо того, чтобы сидеть и созерцать изменения, не лучше ли присоединиться и научиться писать код для них? Изучение веб-разработки - одна из самых ценных инвестиций, которые вы можете сделать с помощью своего времени. Это не только поможет найти лучшую работу, но и даст способности воплотить вашу идею в прототип в простой и прямолинейной манере. Необходимые ингредиенты для веб-разработки включают пользовательский интерфейс и пользовательский опыт, но к несчастью наша книга не об этом. Что изменилось в веб-разработке? 4
Веб-разработка совершила большой прогресс за последние годы. Вот некоторые из достижений: • 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 работает на идее разделенного представления. Идея, стоящая за разделенной презентацией - это создание четкого разделения между объектами домена, которые моделируют наше представление реального мира, и объектами представления, являющимися элементами пользовательского интерфейса(Ы), которые мы видим на 5
экране. Объекты домена должны полностью работать без отсылки к представлению или логике привязки данных(контроллер). Они должны быть также способны поддерживать множество представлений, возможно случайных. Преимущества этого шаблона очевидны. С ним дизайнеры могут работать над интерфейсом, не беспокоясь о хранении данных или управлении ими. А разработчики способны программировать логику привязки данных, не вдаваясь в детали представления. Как результат, шаблон 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), 6
перекидывает мостик между моделью данных и движком базы данных. Он поддерживает огромное количество систем баз данных, и переключение от одного движка базы данных к другому представляет собой изменение конфигурационного файла. Это дает огромную гибкость в случае, если решение состоит в переключении с одного движка базы данных на другой. Если у вас возникли проблемы, то вы можете скачать драйвер (в виде бинарного пакета Python) здесь: ссылка: http://www.lfd.uci.edu/~gohlke/pythonlibs. Вдобавок к этому, Django предоставляет сеть окружения разработки. Она представляет легковесный сервер для разработки и тестирования. Когда включен режим отладки, то Django предоставляет тщательные и очень подробные сообщения об ошибках с большим количеством отладочной информации. Все это делает процесс изоляции и устранения багов очень легким. Django поддерживает многоязыковые веб-сайты через собственную встроенную систему локализации. Это может быть очень ценно для тех, кто работает с веб-сайтами на более чем одном языке. Система делает перевод интерфейса очень простым занятием. Все стандартные возможности, которые традиционно содержит веб-фреймворк, доступны в Django. Они включают в себя: д Движок, включающий шаблоны и фильтрацию текста с простым, но расширяемым синтаксисом. • Генерация форм и API для проверки. • Расширяемая система аутентификации. • Система кэширования для ускорения производительности приложений. • Фреймворк для фидов для генерации RSS-фидов. И в заключение, Django предоставляет набор интегрированных и готовых к работе компонентов с превосходной документацией, за это спасибо огромному сообществу разработчиков и пользователей. Нет ничего лучше, чем начать изучать веб-разработку, когда доступен Django! Внутри Django Мы подразумеваем, что есть несколько важных причин, почему мы используем Django для лучшей веб-разработки. Некоторые из этих важных особенностей будут объяснены в следующих подразделах. Django - это зрелость Многие компании прямо используют Django в своем производстве и с постоянными пожертвованиями от разработчиков по всему миру. Самые известные сайты включают в себя Pinterest и Quora. Это дает с полным правом считать этот веб-фреймворк идеальным. 7
Батареи в комплекте Django следует философии языка Python “Батареи в комплекте”, которая подразумевает, что Django поставляется со множеством дополнительных опций и возможностей, которые важны при решении проблем стоящих перед лицом вебразработчика. Тесная интеграция между компонентом и модульным фреймворком Django очень гибкий в вопросах его интеграции с частями модуля. Шансы на то, что существующий популярный проект, у которого есть интерфейс прикладного программирования(АР1) или завершенный плагин для Django, очень малы. Объектно-реляционное отображение Одна из самых важных частей проекта Django. Компонент базы данных Django, объектно-реляционное отображение(ORM), перекидывает мостик между моделью данных и движком базы данных. ORM-слой предоставляет такие особенности, как инкапсуляция, переносимость, безопасность и выраженность в Модальном Классе Django, который отображается на выбранную в конфигурационном файле базу данных. Чистый URL дизайн В Django очень мощная и гибкая URL-система. Она позволяет определить шаблоны для URL в вашем приложении и определить Python-функции применимо к каждому шаблону. Автоматический интерфейс администрирования Django поставляется с интерфейсом администрирования, который уже готов к использованию. Этот интерфейс делает управление данными вашего приложения быстрее. Продвинутое окружение разработки Вдобавок к этому, Django предоставляет сеть окружения разработки. Она представляет легковесный сервер для разработки и тестирования. Когда включен режим отладки, то Django предоставляет тщательные и очень подробные сообщения об ошибках с 8
большим количеством отладочной информации. Все это делает процесс изоляции и устранения багов очень легким. Что нового в 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/. Поддерживаемые базы данных Django с большим уважением и силой относится к данным. Моделируйте данные корректно, и оставшаяся часть сайта ровнехонько займет свое место. Согласившись с тем, что Django был разработан для реляционных баз данных, так же существует и неофициальная NoSQL имплементация для Django. Вот список поддерживаемых Django реляционных баз данных: • SQL: SQLite, MySQL и PostgreSQL. • SQLite: это база данных по умолчанию для Django приложений и в основном 9
используется для тестовых целей. p PostgreSQL: Это open source база данных, широко используемая с RDBS. Мы построим наш пример микроблога на основе этой базы данных. • NoSQL: Как насчет единой таблицы для данных, содержащих информацию о пользователе или их комментариях, и только? Другими словами, как насчет того, что для структуры вставленных данных или вложенных данных нет правил, как в Статьях с массивом поддокументов с комментариями? Звучит странно? Да, это так. В давние времена люди использовали один и только один концепт реляционной базы данных, но с тех пор, как наступил рассвет эры облачных вычислений, программисты полюбили имплементировать NoSQL архитектуру в каждый возможный одиночный проект. Нет хранилища и нет следования любым нормальным формам. Вы не можете использовать соединения, но есть много других преимуществ их использования. • App Engine, MongoDB, Elasticsearch, Cassandra и Redis - самые известные NoSQL базы данных, поддерживаемые Django. MongoDB стала популярной среди сообщества Django в эти дни. • MongoDB: Это open source база данных, широко используемая NoSQL документальная база данных. Мы используем ее для создания нашего второго небольшого приложения - для сокращателя URL-ссылок. MySQL и PostgreSQL - две основных базы данных, используемых в сообществе Django, а самой популярной в сообществе Django является PostgreSQL В этом курсе мы будем в основном иметь дело с тремя базами данных из вышеперечисленного списка, но имплементация других может быть практически идентична с минимальными изменениями в конфигурации. Есть много известных сайтов, базирующихся на Django. Вот некоторые из них: • Pinterest: сервис для совместного использования контента, особенно для изображений и видео. • Disqus: веб-сервис для комментариев в блоге. • Quora: веб-сайт основанный на вопросах и ответах. • Bitbucket: веб-сайт для хостинга свободного кода для Git и Mercurial. • Mozilla Firefox: Страница поддержки Mozilla Firefox. Что вы изучите, используя этот курс Этот курс нацелен на построение веб-приложения микроблога и добавления к нему стандартных особенностей Веб 2.0. Вот некоторые из этих особенностей: • Создание представления, модели и контролера Django: Это идеально сочетается с изучением фреймворка Django, а именно, как запросы связываются с контроллерами для визуализации представления после того, как были произведены необходимые манипуляции с данными, хранящимися в базе данных. • Теги и облака тегов: В проекте сайта-микроблога, каждое сообщение в нем должно сопровождаться хэштегом (тег, начинающийся с #). Отображение этих 10