Язык программирования джанго: Что же представляет из себя Django? · HonKit
Содержание
Что же представляет из себя Django? · HonKit
Django (/ˈdʒæŋɡoʊ/ джанго) — бесплатный и свободный фреймворк для веб-приложений, написанный на Python. Фреймворк — это набор компонентов, которые помогают разрабатывать веб-сайты быстро и просто.
Каждый раз при разработке веб-сайтов требуются похожие компоненты: способ аутентифицировать пользователей (вход, выход, регистрация), панель управления сайтом, формы, инструменты для загрузки файлов и т. д.
К счастью для нас, другие люди обратили внимание на возникновение однотипных проблем при веб-разработке, так что они объединились и создали фреймворки (Django и другие), которые предлагают нам готовые шаблоны для использования.
Фреймворки существуют, чтобы облегчить процесс разработки и позволить нам не изобретать колесо.
Зачем нам нужен фреймворк?
Чтобы понять, для чего же нам нужен Django, нам нужно ближе познакомиться с серверами. Во-первых, сервер должен узнать о том, что мы ждём от него веб-страницу.
Представь себе почтовый ящик (порт), который проверяется на наличие новых писем (запросов). Это делает веб-сервер. Когда письмо приходит, сервер читает его и отправляет ответ с веб-страничкой. Однако чтобы что-то отправить, нам надо это что-то иметь. И Django как раз и отвечает за создание контента, который будет отправлен в ответе.
Что происходит, когда кто-то запрашивает веб-сайт у твоего сервера?
Когда на сервер приходит запрос, он переадресуется Django, который пытается сообразить, что же конкретно от него просят. Для начала он берет адрес веб-страницы и пробует понять — что же нужно сделать. Эту часть процесса в Django выполняет urlresolver (адрес веб-сайта называется URL — Uniform Resource Locator — Единый указатель ресурсов, так что название urlresolver, resolver == распознаватель, имеет определенный смысл). Он не слишком умён, поэтому просто берет список шаблонов и пытается сопоставить их с URL. Django сверяет шаблоны сверху вниз и, если что-то совпадает, он перенаправляет запрос соответствующей функции (которая называется view).
Представь себе почтальона с письмом. Она идет вниз по улице и сверяет номера домов с адресом на письме. Если они совпадают, то она оставляет письмо. Так же работает и urlresolver!
Но самые интересные вещи происходят в функции view: мы, например, можем обращаться к базе данных за определенной информацией. Может быть, пользователь попросил изменить какую-нибудь информацию? Как будто в письме написано: «Пожалуйста, поменяйте описание моей работы.» Функция view может проверить, имеете ли вы разрешение делать это, а затем обновит описание работы и отправит обратно ответ: «Готово!». Затем функция view сгенерирует ответ, и Django сможет отправить его веб-браузеру пользователя.
В реальности все немного сложнее, однако тебе не обязательно знать все технические навороты прямо сейчас. Достаточно основной концепции.
Так что вместо погружения в пучины нюансов мы просто начнем работать с Django и познакомимся со всеми важными особенностями по мере продвижения!
Django — фреймворк на Python
Django — это программный каркас с богатыми возможностями, подходящий для разработки сложных сайтов и веб-приложений, написанный на языке программирования Python.
Django — фреймворк для веб-приложений на языке Python. Один из основных принципов фреймворка — DRY (don’t repeat yourself). Веб-системы на Django строятся из одного или нескольких приложений, которые рекомендуется делать отчуждаемыми и подключаемыми. Это одно из заметных архитектурных отличий этого фреймворка от некоторых других (например, Ruby on Rails). Также, в отличие от многих других фреймворков, обработчики URL в Django конфигурируются явно (при помощи регулярных выражений), а не автоматически задаются из структуры контроллеров.
Django проектировался для работы под управлением Apache (с модулем mod_python) и с использованием PostgreSQL в качестве базы данных. В настоящее время, помимо PostgreSQL, Django может работать с другими СУБД: MySQL (MariaDB), SQLite, Microsoft SQL Server, DB2, Firebird, SQL Anywhere и Oracle. Для работы с базой данных Django использует собственный ORM, в котором модель данных описывается классами Python, и по ней генерируется схема базы данных.
Архитектура Django похожа на «Модель-Представление-Контроллер» (MVC). Контроллер классической модели MVC примерно соответствует уровню, который в Django называется Представление (View), а презентационная логика Представления реализуется в Django уровнем Шаблонов (Templates). Из-за этого уровневую архитектуру Django часто называют «Модель-Шаблон-Представление» (MTV).
Первоначально разработка Django велась для обеспечения более удобной работы с новостными ресурсами, что достаточно сильно отразилось на архитектуре: фреймворк предоставляет ряд средств, которые помогают в быстрой разработке веб-сайтов информационного характера. Например, разработчику не требуется создавать контроллеры и страницы для административной части сайта, в Django есть встроенное приложение для управления содержимым, которое можно включить в любой сайт, сделанный на Django, и которое может управлять сразу несколькими сайтами на одном сервере. Административное приложение позволяет создавать, изменять и удалять любые объекты наполнения сайта, протоколируя все совершённые действия, и предоставляет интерфейс для управления пользователями и группами (с пообъектным назначением прав).
Веб-фреймворк Django используется в таких крупных и известных сайтах, как Instagram, Disqus, Mozilla, The Washington Times, Pinterest, lamoda и др.
Некоторые возможности Django:
- ORM, API доступа к БД с поддержкой транзакций
- встроенный интерфейс администратора, с уже имеющимися переводами на многие языки
- диспетчер URL на основе регулярных выражений
- расширяемая система шаблонов с тегами и наследованием
- система кеширования
- интернационализация
- подключаемая архитектура приложений, которые можно устанавливать на любые Django-сайты
- «generic views» — шаблоны функций контроллеров
- авторизация и аутентификация, подключение внешних модулей аутентификации: LDAP, OpenID и прочие.
- система фильтров («middleware») для построения дополнительных обработчиков запросов, как например включённые в дистрибутив фильтры для кеширования, сжатия, нормализации URL и поддержки анонимных сессий
- библиотека для работы с формами (наследование, построение форм по существующей модели БД)
- встроенная автоматическая документация по тегам шаблонов и моделям данных, доступная через административное приложение
Некоторые компоненты фреймворка между собой связаны слабо, поэтому их можно достаточно просто заменять на аналогичные. Но с некоторыми (например, с ORM) это сделать не очень просто. Кроме возможностей, встроенных в ядро фреймворка, существуют пакеты, расширяющие его возможности.
На базе Django разработано достаточно много готовых решений, распространяемых под свободной лицензией, среди которых системы для управления интернет-магазинами, универсальные системы управления содержанием, а также более узконаправленные проекты.
Веб-фреймворк Django (Python) — Изучение веб-разработки
Django является чрезвычайно популярным и полнофункциональным серверным веб-фреймворком, написанным на Python. Данный модуль расскажет о том, почему Django один из самых популярных серверных веб-фреймворков, как установить среду разработки, и как начать использовать его для создания собственных веб-приложений.
Перед началом работы с этим модулем вам не обязательно уже быть знакомым с Django. Вам бы пригодилось общее понимание того, что такое серверное веб-программирование и веб-фреймворки, почерпнутое, в идеале, из топиков другого нашего модуля Первые шаги серверного программирования веб-сайтов.
Рекомендуется базовое понимание концепций программирования и языка Python, но это не обязательно для освоения основных понятий.
Примечание: Python является одним из самых доступных в чтении и понимании для новичков языком программирования. Тем не менее, если вы захотите глубже понять этот модуль, в Интернете сейчас доступны многочисленные бесплатные книги и учебные пособия (новички в программирование возможно захотят посетить Python for Non Programmers на вики-страницах python.org).
- Введение в Django
- В этой первой статье по Django мы ответим на вопрос «Что такое Django?» и сделаем обзор того, что делает этот веб-фреймворк особенным. Мы кратко рассмотрим основные особенности, включая некоторую продвинутую функциональность, на которой у нас не будет возможности подробно остановиться в этом модуле. Мы также покажем вам некоторые из основных строительных блоков приложения Django, чтобы дать вам представление о том, что он может сделать, прежде чем вы перейдёте к установке и начнёте экспериментировать.
- Установка среды разработки Django
- Теперь, когда вы знаете, что такое Django, мы покажем вам, как установить и протестировать среду разработки Django для Windows, Linux (Ubuntu) и Mac OS X — какую бы операционную систему вы не использовали, эта статья должна дать вам понимание того, что вам потребуется, чтобы начать разработку Django-приложений .
- Учебник Django: Веб-сайт местной библиотеки
- Первая статья в нашей серии практических уроков объясняет, что вы узнаете, и представит обзор веб-сайта «местной библиотеки», над которым мы будем работать и развиваться в последующих статьях.
- Учебник Django часть 2: Создание скелета веб-сайта
- В этой статье показано, как вы можете создать проект веб-сайта «каркас» в качестве основы, после чего вы сможете заполнить параметры сайта, urls, модели, представления и шаблоны.
- Учебник Django часть 3: Использование моделей
- В этой статье показано, как определить модели для сайта местной библиотеки — модели представляют структуры данных, в которых мы хотим хранить данные нашего приложения, а также позволяют Django хранить данные в базе данных для нас (и модифицировать позже). Она раскрывает, что такое модель, как она объявляется и некоторые из основных типов полей. В ней также кратко показаны некоторые из основных способов доступа к данным модели.
- Учебник Django часть 4: Django admin веб-сайта
- Теперь, когда мы создали модели для сайта местной библиотеки, мы будем использовать Django Admin, чтобы добавить данные о книгах в библиотеке. Сначала мы покажем вам, как регистрировать и администрировать модели сайта а затем мы покажем вам, как входить в систему и создавать некоторые данные. В конце мы покажем некоторые способы дальнейшего улучшения представлений сайта.
- Учебник Django часть 5: Создание главной страницы
- Теперь мы готовы добавить код для отображения нашей первой полной страницы — главной страницы сайта местной библиотеки, которая показывает, сколько записей у нас есть для каждого типа модели, и предоставляет ссылки на боковых панелях на другие наши страницы. По пути мы получим практический опыт написания основных карт и представлений URL, получения записей из базы данных и использования шаблонов.
- Учебник Django часть 6: Общий список и подробные представления
- Это руководство расширяет наш сайт местной библиотеки, добавляя список и подробные страницы для книг и авторов. Здесь мы узнаем об общих представлениях на основе классов и покажем, как они могут уменьшить количество кода, который вы должны писать для случаев общего использования. Мы также перейдём к обработке URL-адресов более подробно, покажем, как выполнить базовое сопоставление шаблонов.
- Учебник Django часть 7: Структура сессий
- Это руководство расширяет наш сайт местной библиотеки, добавляя счётчик посещений домашней страницы. Это относительно простой пример, но он показывает, как вы можете использовать структуру сессии, чтобы обеспечить постоянное поведение анонимных пользователей на ваших собственных сайтах.
- Учебник Django часть 8: Авторизация и права пользователей
- В этом уроке мы покажем вам, как разрешить пользователям входить на ваш сайт со своими учётными записями и как управлять тем, что они могут делать и видеть на основе того, зарегистрированы ли они или нет, и их допусках. В рамках этой демонстрации мы расширим сайт местной библиотеки, добавив страницы входа и выхода, а также страницы пользователей и персональные страницы для просмотра книг, которые были взяты на руки.
- Учебник Django часть 9: Работа с формами
- В этом уроке мы покажем вам, как работать с HTML Forms в Django, и в частности, самый простой способ писать формы для создания, обновления и удаления экземпляров модели. В рамках этой демонстрации мы расширим сайт местной библиотеки, чтобы библиотекари могли вносить новые книги, создавать, обновлять и удалять авторов, используя наши собственные формы (а не использовать приложение администратора).
- Учебник Django часть10: Тестирование веб-приложения Django
- По мере роста веб-сайтов становится сложнее проверять вручную — требуется больше проверок, поскольку взаимодействие между компонентами усложняется, небольшое изменение в одной области может потребовать дополнительные тесты для проверки его влияния на другие области. Один из способов смягчить эти проблемы — написать автоматизированные тесты, которые можно легко и надёжно запускать каждый раз, когда вы вносите изменения. В этом руководстве показано, как автоматизировать модульное тестирование вашего сайта с помощью тестовой среды Django.
- Учебник Django часть 11: Деплой Django на продакшн
- Теперь вы создали (и протестировали) удивительный сайт местной библиотеки, вам захочется установить его на общедоступный веб-сервер, чтобы к нему мог получить доступ персонал библиотеки и пользователи Интернета. В этой статье представлен обзор того, как вы можете найти хост для развёртывания вашего веб-сайта и что вам нужно сделать, чтобы подготовить ваш сайт к выпуску.
- Безопасность веб-приложений Django
- Защита пользовательских данных является неотъемлемой частью любой разработки сайта. Ранее мы объяснили некоторые из наиболее распространённых угроз безопасности в статье Web security — Эта статья даёт практическую демонстрацию того, как встроенные средства защиты Django справляются с такими угрозами.
Следующее задание проверит ваше понимание того, как создать сайт с помощью Django, как описано в руководствах, перечисленных выше.
- DIY Django мини-блог
- В этом задании вы будете использовать некоторые знания, которые вы узнали из этого модуля, чтобы создать свой собственный блог.
Плюсы и минусы Django
Вы разработчик? Тогда очевидно, что вам нужен лучший язык программирования. Но определение лучшего языка и инструментов – непростая задача. Слышали ли вы о Django? Или, по крайней мере, знакомы ли вы с его минусами и плюсами? Используя данный инструмент, кажется, что все становится на свои места очень быстро и эффективно.
Почему Django?
Когда у вас возникает определенная мысль, трансформировать ее на языке программирования и предать ей реальную форму при помощи Django займет всего несколько минут. То, что Django находится в свободном доступе, дает возможность заметно упростить процесс веб разработки, так как разработчик может сфокусироваться на процессе дизайна и разработке функционала приложения. Таким образом, Django – это идеальный инструмент для стартапов, когда веб дизайн должен отображать концепцию и цели компании.
Django в центре внимания
Django появился в 2005 году, и постепенно стал одним из лучших фреймворков, который помогал и помогает тысячам разработчиков выполнять ту или иную работу в течение нескольких минут. Изначально Django был фреймворком для языка Python, с отличным функционалом, Django заметно упростил ряд сложностей в разработке веб приложений, придав данной работе более упрощенный подход
Python и его популярность
Хорошо известно, что Python является одним из самых используемых языков программирования благодаря простоте в изучении, дизайну и гибкости, что делает его практически совершенным языком программирования. Существует ряд причин, по которым его можно называть такими громкими словами.
- Простота в изучении
- Чистота и читаемость
- Разносторонность
- Быстрота написания
- Цельный дизайн
Однако, Python работает на собственной философии, называемой «Дзен Python». Эта философия дает ему уникальную форму, не имеющую аналогов в других языках программирования. Опираясь на эти принципы, разработчики могут создавать код высшего сорта.
Плюсы Django
Я уже достаточно расхвалил Python и его преимущество, так что давайте сфокусируемся на преимуществах Django, который является не только быстрым решением в веб разработке, включающим все необходимое для качественного кода и прозрачного написания, но также и отличной платформой для работы с клиентурой того или иного бизнеса, а так же разработчиков.
- Быстрота: Django был разработан, чтобы помочь разработчикам создать приложение настолько быстро, на сколько это возможно. Это включает в себя формирование идеи, разработку и выпуск проекта, где Django экономит время и ресурсы на каждом из этих этапов. Таким образом, его можно назвать идеальным решением для разработчиков, для которых вопрос дедлайна стоит в приоритете.
- Полная комплектация: Django работает с десятками дополнительных функций, которые заметно помогают с аутентификацией пользователя, картами сайта, администрированием содержимого, RSS и многим другим. Данные аспекты помогают осуществить каждый этап веб разработки.
- Безопасность: Работая в Django, вы получаете защиту от ошибок, связанных с безопасностью и ставящих под угрозу проект. Я имею ввиду такие распространенные ошибки, как инъекции SQL, кросс-сайт подлоги, clickjacking и кросс-сайтовый скриптинг. Для эффективного использования логинов и паролей, система пользовательской аутентификации является ключом.
- Масштабируемость: фреймворк Django наилучшим образом подходит для работы с самыми высокими трафиками. Следовательно, логично, что великое множество загруженных сайтов используют Django для удовлетворения требований, связанных с трафиком.
- Разносторонность: менеджмент контента, научные вычислительные платформы, даже крупные организации – со всем этим можно эффективно справляться при помощи Django.
Есть вопросы по Python?
На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!
Telegram Чат & Канал
Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!
Паблик VK
Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!
PHP против Python
PHP можно назвать самым сильным конкурентом Python, оба эти языка очень популярны. Однако у Django есть парочка роялей в кустах, которыми не может похвастаться PHP. Нередко эти преимущества являются решающими для разработчиков. Выбор между PHP и Python – не самая простая задача, надеюсь следующие сравнения помогут вам сделать объективный вывод:
- Лучший дизайн: PHP был разработан специально для веб разработки, но Django базируется на более надежном языке. Хороший код проще написать в Python, в сравнении с PHP.
- Python и долгосрочность: PHP очень хорош в краткосрочной перспективе. Однако, когда вы проходите начальную фазу, вам может понадобиться язык с более глубокими возможностями. Здесь Python выступает в роли явного фаворита.
- Лучший Веб Фреймворк: Рынок наполнен великим множеством замечательных фреймворков. Однако это не касается долгосрочной ценности. И Django в данном случае является явным победителем. Хотя и PHP может похвастаться со своими Laravel, Yii, Symfony.
- Фактор читаемости: PHP следует классическому подходу, но у Python более строгие правила идентификации. Отсюда выбирайте, что лучше.
- Простой синтаксис: написание кода в Python происходит намного проще и быстрее.
- Инструменты для лечения багов: пакеты Python содержат все необходимые инструменты для исправления неполадок.
- Управление пакетам: в Python это реализовано весьма эффективно: вы можете писать, читать и делиться пакетами таким образом, что другие разработчики могут использовать их в других приложениях.
- Говорим Python, подразумеваем «Общее Назначение»: В то время как PHP используется для веб разработки, Python может быть использован для различных целей, также стоит отметить, что вы можете работать как онлайн, так и оффлайн.
Минусы
Минусы всегда идут за руку с плюсами. Давайте рассмотрим, почему Django нельзя назвать безупречным:
- Использование шаблона маршрутизации с указанием URL
- Django слишком монолитный
- Все базируется на ORM Django
- Компоненты развертываются совместно
- Необходимо умение владеть всей системой для работы
Подведем итоги
Существует очень много плюсов и минусов Django, не упомянутых в данной статье, однако, когда рассматривается проект с дедлайном, использование Django для решения поставленной задачи – грамотное решение. Более того, для ускорения рабочего процесса, есть возможность установить пользовательскую кастомную конфигурацию. Ранее, когда разработка кода требовала большого количества времени, такая возможность позволила заметно упростить этот процесс. Стоимость разработки снизилась практически на 80%, а необходимость в аутсорсинге вообще отпала. Но погодите, делает ли это Django лучшим? Что-ж, в некоторых странах определенно попытаются передать Django на аутсорс. Кому? Скорее всего, низкоквалифицированным и дешевым разработчикам.
Являюсь администратором нескольких порталов по обучению языков программирования Python, Golang и Kotlin. В составе небольшой команды единомышленников, мы занимаемся популяризацией языков программирования на русскоязычную аудиторию. Большая часть статей была адаптирована нами на русский язык и распространяется бесплатно.
E-mail: [email protected]
Образование
Universitatea Tehnică a Moldovei (utm.md)
- 2014 — 2018 Технический Университет Молдовы, ИТ-Инженер. Тема дипломной работы «Автоматизация покупки и продажи криптовалюты используя технический анализ»
- 2018 — 2020 Технический Университет Молдовы, Магистр, Магистерская диссертация «Идентификация человека в киберпространстве по фотографии лица»
Cайт на Python — Django уроки создания сайта на Питоне
Python – мощный язык, функциональность которого увеличивается при использовании дополнительных библиотек. В видео курсе мы изучим популярный фреймворк Django и построим полноценный веб сайт на основе Джанго.
Информация про Джанго
Язык Python универсальный и на его основе можно писать приложения для различных целей. Создать сайт на Python вполне возможно, но сайт на питоне гораздо проще создается при использовании Джанго Питон. При помощи дополнительных библиотек можно создавать как приложения, так и веб сайты. К примеру, для создания игр на Python понадобиться библиотека Pygame, а для создания сайтов – Django.
Зачем нужен Джанго?
Писать сайты на Питон на самом деле можно и без использования сторонних библиотек или же фреймворков. В то же время, написание сайта на основе лишь Python – это долгий и сложный процесс. Чтобы облегчить дело были придуман отдельные фреймворки или, другими словами, готовые решения для ускорения процесса построения сайта.
Джанго создан на основе языка Питон. За счёт Django вы можете намного проще и быстрее создавать как легкие, так и сложные веб сайты.
На самом деле, Джанго не является монополистом и помимо него существуют другие Фреймворки, обеспечивающие схожую функциональность. Несмотря на остальных Джанго удобно себя чувствует на месте лидера в теме разработки сайтов на питон.
Преимущества Джанго
Преимущество Джанго перед другими фреймворками заключается в огромном наборе готового функционала, за счет которого можно быстро и просто создать систему регистрации на сайте, добавить форум на сайт, реализовать систему поиска по сайту или выполнить какое-то другое действие на сайте.
В Джанго используется схема MVC. Это схема позволяет удобно разбить файлы на одну из трех категорий: HTML шаблоны, файлы модели для работы с базой данных и файлы контроллеры для связи моделей и HTML шаблонов между собой.
Одна из ключевых особенностей Джанго в том, что вы можете скачать отдельную часть проекта и добавить её в свой проект, просто заменив ссылки на нужные для вас.
Сайты на Джанго можно создавать быстро, они обладают шустрой подгрузкой, а также могут выдерживать большие нагрузки. В каждом проекте по-умолчанию будет подключена панель администратора, через которую можно управлять сайтом и базой данных.
Сайты на Джанго
На сегодняшний день существует большое количество популярных сайтов, которые созданы именно при помощи этой технологии, среди них:
- Google — крупнейший сайт на Django. Является поисковой системой;
- YouTube — крупнейший видеохостинг;
- Instagram — популярное приложения для обмена фото и видео;
- Pinterest — крупнейший социальный интернет-сервис;
- The Washington Times — популярная всемирная газета.
Это только небольшой список тех компаний, которые используют эту технологию в своих продуктах.
Как видите, перспективы изучения Django очень большие, так как сейчас все больше и больше крупных компаний ищут специалистов со знаниями именно этой библиотеки.
Какие знания нужны?
Для разработки сайтов на Джанго вам потребуется изначально изучить язык Питон. Посколько весь синтаксис будет написан именно на языке Питон, то без его знания вам будет сложно понять данную тему и разобраться в ней. Курс по изучению языка Питон есть на нашем сайте. Вы можете его просмотреть по этой ссылке.
Помимо Питон вам также нужно уметь работать с языком разметки HTML и языком стилей CSS. Без этих языков вам не удастся написать разметку веб страницы, поэтому перед курсом также стоит изучить HTML и CSS.
Дополнительно обязательных знаний не требуется и вы можете приступать к изучению курса. Все Django уроки представлены на нашем сайте в полной мере.
План курса
За Django курс мы изучим все основные положения фреймворка Django, а также создадим Python сайт. Для реализации стилей на сайте мы будем использовать библиотеку Bootstrap (уроки по ней можно посмотреть здесь), а для связи с базой данных мы будем использовать встроенную ORM систему, которая позволяет создавать таблицы в базе данных на основе классов в Python.
Программа обучения
Также на нашем сайте есть более углубленные Python Django уроки в программе по изучению языка Питон и его библиотек. За программу вы узнаете создание сайта на Python, изучите все моменты как написать сайт на Питоне, разработать на его основе программы под мобильные приложения и многое другое. Ознакомится с программой обучения можно по этой ссылке.
обзор профессии, чем занимаются и что должны знать
Здравствуйте! В статье поговорим о Django-разработчиках. Разберемся, чем они занимаются, что входит в их обязанности, востребованы ли программисты на Джанго и куда можно трудоустроиться.
Django – это самый популярный фреймворк для языка программирования Python, то есть набор готовых компонентов для создания удобных и функциональных сайтов. Говоря простыми словами, это заранее написанные фрагменты кода, которые используются для решения наиболее распространенных задач, ускоряют и упрощают процесс разработки.
Таким образом, Django-разработчик – это программист, который с помощью языка Питон и фреймворка Джанго делает:
- Сайты, интернет-магазины, каталоги, онлайн-сервисы для бронирования, заказа товаров или услуг.
- Корпоративные приложения, CRM- и CMS-системы, мессенджеры.
- Облачные хранилища данных и многое другое.
Джанго-программист занимается преимущественно разработкой на стороне сервера, то есть создает backend сайта. В его обязанности входит:
- Написание кода для программ разного назначения.
- Построение API, настройка фильтрации и поиска.
- Работа с базами данных, оптимизация запросов.
- Тестирование, отладка и устранение ошибок.
- Развертывание и управление приложением.
Кратко перечислим, что знает и умеет делать Django-программист:
- Понимает принципы построения сайта.
- Применяет правила объектно-ориентированного программирования, паттерны проектирования.
- Владеет Python и Django на базовом или углубленном уровне (в зависимости от квалификации).
- Имеет общие представления о фронтенде веб-страниц, HTML, CSS и Javascript.
- Знаком с языком запросов SQL и особенностями работы с базами данных.
- Может работать с API сторонних сервисов.
Знания и навыки программиста зависят от его опыта:
- Junior – новичок, который занимается разработкой от полугода и имеет хотя бы один собственный проект. Обычно работает под руководством наставника-ментора. Он владеет языком Python на начальном уровне и знает, какие бывают инструменты для backend-разработки.
- Middle – специалист с опытом не менее двух-трех лет, который умеет программировать на Питон и Джанго, пользуется другими библиотеками или фреймворками, может работать в Git. Мидл пишет чистый, лаконичный код, который соответствует общепринятым стандартам и не нуждается в ревью.
- Senior – профессионал со стажем от 5 лет. Он должен уметь самостоятельно создавать любые сайты, интернет-магазины и веб-приложения на Python/Django. Сеньор знает другие языки программирования и фреймворки, а также продвинутые технологии для бэкенд-программирования: методы непрерывной интеграции CI/CD, Docker, PyCharm и др.
Подборка курсов
Все онлайн-курсы по разработке на Django в 2021 году
Посмотреть подборку
Язык программирования Python входит в ТОП-5 по миру, а Django является его самым популярным фреймворком. На нем написано множество крупнейших сайтов, веб-приложений и онлайн-сервисов: Instagram, Pinterest, Youtube, Mozilla, Udemy, Spotify, Reddit и др. Django ускоряет и оптимизирует процесс разработки, поэтому им пользуются многие веб- и бэкенд-программисты.
Что касается востребованности специалистов со знанием Python и Django, то спрос на них остается стабильно высоким на протяжении последних 5-7 лет, поскольку разработчики, владеющие этим стеком, умеют создавать сложные и высоконагруженные системы. Их услуги требуются как для поддержания и обновления уже существующих приложений, так и для создания новых проектов.
Чтобы оценить, насколько востребованы Джанго-разработчики, мы изучили вакансии на HeadHunter. На текущий момент на сайте опубликовано около 1500 объявлений, в том числе почти 100 из них – без требований к опыту.
Большая часть работодателей ищет специалистов уровня senior – около 500 компаний. Больше всего предложений для Django-программистов в Москве, Петербурге, Новосибирске, Нижнем Новгороде и Казани.
Django-программист работает преимущественно в веб-разработке, то есть создает сайты, интернет-магазины и веб-сервисы. Перечислим сферы, в которых востребованы специалисты со знанием фреймворка Джанго:
- IT-компании, которые занимаются разработкой цифровых продуктов для бизнеса – от сайтов до корпоративных приложений.
- Интернет-продажи, онлайн-магазины, сервисы бронирования.
- Медиа, новостные порталы, digital.
- Платформы для онлайн-образования.
- Банки, платежные системы и электронные кошельки.
К примеру, Django-разработчики требуются в Сбер, Райффайзенбанк, Mail Group, Rambler и Яндекс.
У начинающего разработчика на Джанго есть несколько карьерных направлений:
- Можно поэтапно развиваться в профессии: junior, middle, senior. Проработав в веб-разработке от 4-5 лет, вы сможете стать ведущим программистом, техническим директором, руководителем подразделения или тимлидом в крупной IT-компании.
- Начать с фриланса и со временем открыть собственный бизнес, например, собрать команду разработчиков и создавать сайты, интернет-магазины либо ПО для корпоративных клиентов.
- Получить должность в международной компании и уехать за границу. Программисты, особенно такие востребованные, как Джанго-разработчики, могут найти работу по всему миру.
Приложения Джанго | Топ 8 приложений Django & Uses
Что такое Джанго?
Django — это бесплатный веб-фреймворк с открытым исходным кодом, написанный на Python. Этот Django помогает нам создать полноценное веб-приложение. Django, используя язык Python, мы можем создать веб-страницу, с помощью которой пользователи могут отправлять любые запросы и просматривать содержимое веб-страницы. Затем ответы между серверной базой данных и пользовательским интерфейсом также выполняет Django, как мы уже видели в архитектуре Django. Наконец, любые обновления, выбор, вставка операторов в базу данных также могут быть выполнены с использованием Django, интегрированного с различными базами данных.
Использование Джанго
Давайте сначала разберемся, почему и в каких сценариях используется Django:
- Использование инфраструктуры Django для полной и быстрой разработки, как и для других языков программирования, таких как C, C #, Java и т. Д.
- Это может использоваться для обработки большого объема данных, большого непрерывного трафика и для обработки динамических данных.
- Мы можем подтвердить, что разработка кода в Django будет быстрее, так как он обладает отличной возможностью повторного использования, что сократит время и пространство при написании одного и того же кода много раз.
- Эта структура может быть легко настроена.
- Техника проектирования достаточно чиста, чтобы ее можно было легко понять и контролировать.
Приложения Джанго
Теперь, когда мы поняли, почему на самом деле мы можем использовать фреймворк Django, давайте теперь проверим, какие приложения используются:
1. Instagram
Это одно из наиболее часто используемых приложений для социальных сетей, которое используется для обмена фотографиями / видео в вашей сети. В этом приложении, когда пользователь входит в систему, новостная лента или домашняя страница определенно будут отличаться от других пользователей. Этот канал технически основан на интересе пользователя. Это место, где необходимо обработать огромное количество данных. Это приложение должно быть в месте, где оно может легко обновлять существующие функции, даже не обладая полными знаниями базы данных. Благодаря которому мы можем иметь быстрые обновления и новые функции.
Обработка этих огромных данных должна гарантировать, что безопасность нигде не будет нарушена. Джанго здесь устойчив к SQL-инъекциям. Instagram полностью основан на фреймворке Django с необычайной доступностью масштабируемости.
2. Дискуссия
Это приложение является наиболее используемым. Но почему? Это приложение, которое размещает комментарии в блогах по всему миру. Это приложение интегрируется с любой социальной платформой. С помощью этого приложения любой пользователь сможет комментировать любую статью, новости, фотографии, видео и т. Д. Поэтому очевидно, что для этого потребуется обрабатывать много-много пользовательских данных и поддерживать большую базу данных. Это, в свою очередь, может быть использовано при рассмотрении и выполнении аналитики. Это делается с помощью фреймворка Django, включенного в Postgre SQL, или MySql также будет работать.
3. Spotify
Многие из нас могут в настоящее время использовать это приложение. Это приложение для музыки. Он в основном разработан с использованием технологии Django с алгоритмами машинного обучения с использованием python. Мы можем создавать свои плейлисты и на основе песни, которую нам нравится слышать, будет много рекомендаций, основанных на этом. Таким образом, как понятно, даже это приложение также имеет свой собственный канал, различающийся между всеми пользователями. Это также доступно как приложение пользовательского интерфейса. Требуется большое хранилище базы данных для отображения вариантов выбора каждого пользователя и отображения их при каждом входе в приложение.
4. YouTube
Да, приложение Django также используется в этом популярном приложении для обмена видео. Ранее это приложение использовало PHP, но теперь оно переведено на python для лучшей масштабируемости. Обработка большого количества данных и предоставление надлежащего контента миллиардам миллионов пользователей. Django предпочитал работать с этим. Мы не можем сказать, что общее приложение используется с Django, но определенная часть этого делается в Django. Это приложение, принадлежащее Google, которое Django было бы лучшей структурой и может легко и без проблем справляться с быстрыми разработками.
5. DropBox
Как вы уже знаете, это приложение для глобального доступа к вашим файлам в любом месте, где вы хотите. Это приложение разработано с использованием Python. В этом сценарии наше приложение Django поможет хранить, совместно использовать и синхронизировать все эти различные типы файлов. Как на уровне пользовательского интерфейса, так и на уровне мобильных приложений, разработка выполняется с использованием самого Python. Использование Django сделало разработку быстрой и легкой во многих отношениях с точки зрения использования.
6. Бит Ведро
Это также хорошо известный репозиторий, который был запущен в 2008 году, но к 2017 году он стал более известным. Он был разработан с использованием Python с фреймворком Django. Таким образом, любые новые разработки будут просты, так как кодирование с нуля было сделано только с использованием Python. Это место, где разработчики вставляют свой код, чтобы каждый мог использовать их и получать знания из него.
7. Мозилла
Это известный веб-браузер, и вы считаете, что это приложение работает на Python? Почти все веб-браузеры, которые сейчас разрабатываются, используют Python и Django для поддержания нагрузки на серверы. Эти браузеры используют эту трендовую платформу, поскольку Django может обрабатывать любое количество просмотров или большое количество посещений сайта.
8. Прези
Это замена PowerPoint, есть много других встроенных функций. Масштабируемость Django сделала разработку приложений.
Вывод — приложения Django
Как мы уже проверили на всех этих приложениях, мы можем быть уверены, что инфраструктура Django полностью выдерживает большой объем данных. Эта функциональность Django обладает всей масштабируемостью, благодаря которой многие приложения предпочитают эту веб-среду. Благодаря своей гибкости и простоте развертывания, природа сделала эту среду предпочтительной для всех будущих приложений. Итак, давайте изучать и практиковать Python с фреймворком Django.
Рекомендуемые статьи
Это руководство по применению Django. Здесь мы обсудим, что такое Django, использование Django и объяснение топ-8 приложений Django в деталях. Вы также можете просмотреть другие наши статьи, чтобы узнать больше —
- Что такое Джанго?
- Использование Джанго
- Как установить Django
- Встроенные функции Python
Написание вашего первого приложения Django, часть 1 | Документация Django
Учимся на примере.
В этом руководстве мы расскажем, как создать базовый
приложение для опроса.
Состоит из двух частей:
- Общедоступный сайт, на котором люди могут просматривать опросы и голосовать в них.
- Административный сайт, который позволяет добавлять, изменять и удалять опросы.
Предположим, у вас уже установлен Django. Вы можете
скажите, что Django установлен и какую версию, выполнив следующую команду
в приглашении оболочки (обозначается префиксом $):
Если установлен Django, вы должны увидеть версию своей установки.Если оно
нет, вы получите сообщение об ошибке «Нет модуля с именем django».
Это руководство написано для Django 3.2, который поддерживает Python 3.6 и
потом. Если версия Django не подходит, вы можете обратиться к руководству по
ваша версия Django с помощью переключателя версий в правом нижнем углу
этой страницы или обновите Django до последней версии. Если вы используете старую
версия Python, проверьте Какую версию Python можно использовать с Django? найти совместимый
версия Django.
См. Как установить Django, чтобы узнать, как удалить
старые версии Django и установите более новую.
Где получить помощь:
Если у вас возникли проблемы с прохождением этого руководства, перейдите по ссылке
раздел «Получение помощи» в FAQ.
Создание проекта¶
Если вы впервые используете Django, вам придется позаботиться о некоторых
Начальная настройка. А именно, вам нужно будет автоматически сгенерировать код, который устанавливает
Проект Django — набор настроек для экземпляра Django,
включая конфигурацию базы данных, параметры, специфичные для Django и
настройки для конкретного приложения.
Из командной строки введите cd
в каталог, в котором вы хотите сохранить
code, затем выполните следующую команду:
Это создаст каталог mysite
в вашем текущем каталоге. Если бы не
работы, см. Проблемы с запуском django-admin.
Примечание
Вам следует избегать именования проектов после встроенного Python или Django.
компоненты. В частности, это означает, что вам следует избегать использования таких имен, как
django
(который будет конфликтовать с самим Django) или test
(который
конфликтует со встроенным пакетом Python).
Где должен находиться этот код?
Если вы используете старый добрый PHP (без использования современных фреймворков),
вы, вероятно, привыкли помещать код в корневой каталог документов веб-сервера
(в таком месте, как / var / www
). С Django этого не сделать. Его
не лучшая идея помещать какой-либо из этого кода Python в
корень документа, потому что это рискует, что люди смогут
чтобы просмотреть свой код в Интернете. Это плохо для безопасности.
Поместите свой код в какой-нибудь каталог за пределами корня документа, например
/ главная / мойкод
.
Давайте посмотрим, что создал startproject
:
mysite / manage.py мой сайт/ __init__.py settings.py urls.py asgi.py wsgi.py
Это файлы:
- Внешний корневой каталог
mysite /
является контейнером для вашего проекта. Его
имя не имеет значения для Django; вы можете переименовать его как угодно. -
manage.py
: Утилита командной строки, которая позволяет вам взаимодействовать с этим
Проект Django разными способами.Вы можете прочитать все подробности о
manage.py
в django-admin и manage.py. - Внутренний каталог
mysite /
— это фактический пакет Python для вашего
проект. Его имя — это имя пакета Python, которое необходимо использовать для импорта.
что-нибудь внутри него (например,mysite.urls
). -
mysite / __ init__.py
: пустой файл, который сообщает Python, что это
каталог следует рассматривать как пакет Python. Если вы новичок в Python,
подробнее о пакетах читайте в официальной документации Python. -
mysite / settings.py
: Настройки / конфигурация для этого Django
проект. Настройки Django расскажут вам все о том, как настройки
Работа. -
mysite / urls.py
: объявления URL для этого проекта Django; а
«Оглавление» вашего сайта на Django. Вы можете узнать больше о
URL-адреса в диспетчере URL-адресов. -
mysite / asgi.py
: точка входа для ASGI-совместимых веб-серверов в
служить вашему проекту. Дополнительные сведения см. В разделе «Как развернуть с помощью ASGI». -
mysite / wsgi.py
: точка входа для WSGI-совместимых веб-серверов в
служить вашему проекту. Дополнительные сведения см. В разделе «Как развернуть с помощью WSGI».
Сервер разработки¶
Давайте проверим, что ваш проект Django работает. Перейдите во внешний каталог mysite
, если
вы еще этого не сделали, и выполните следующие команды:
В командной строке вы увидите следующий результат:
Выполнение системных проверок ... Проверка системы не выявила проблем (0 отключено).У вас есть непримененные миграции; ваше приложение может не работать должным образом, пока они не будут применены. Запустите python manage.py migrate, чтобы применить их. 05 октября 2021 - 15:50:53 Django версии 3.2 с использованием настроек mysite.settings Запуск сервера разработки по адресу http://127.0.0.1:8000/ Закройте сервер, нажав CONTROL-C.
Примечание
Пока игнорируйте предупреждение о непримененных миграциях базы данных; мы будем иметь дело
с базой данных в ближайшее время.
Вы запустили сервер разработки Django, легкий веб-сервер, написанный
чисто на Python.Мы включили это в Django, чтобы вы могли разрабатывать
быстро, без необходимости настраивать рабочий сервер, например
Apache — пока вы не будете готовы к работе.
Теперь самое время отметить: не использует этот сервер в чем-либо, напоминающем
производственная среда. Он предназначен только для использования во время разработки. (Были в
бизнес по созданию веб-фреймворков, а не веб-серверов.)
Теперь, когда сервер запущен, зайдите на http://127.0.0.1:8000/ со своим веб-
браузер.Вы увидите сообщение «Поздравляем!» страница, со взлетом ракеты.
Это сработало!
Смена порта
По умолчанию команда runserver
запускает сервер разработки.
на внутреннем IP на порту 8000.
Если вы хотите изменить порт сервера, передайте
это как аргумент командной строки. Например, эта команда запускает сервер
на порт 8080:
Если вы хотите изменить IP-адрес сервера, передайте его вместе с портом. Для
Например, для прослушивания всех доступных общедоступных IP-адресов (что полезно, если вы
запускаете Vagrant или хотите показать свою работу на других компьютерах на
сеть), используйте:
0 — это ярлык для 0.0.0.0 . Полная документация для сервера разработки
можно найти в справочнике runserver
.
Автоматическая перезагрузка runserver
Сервер разработки автоматически перезагружает код Python для каждого запроса.
по мере необходимости. Вам не нужно перезапускать сервер, чтобы изменения кода вступили в силу.
эффект. Однако некоторые действия, такие как добавление файлов, не вызывают перезапуск,
поэтому в этих случаях вам придется перезапустить сервер.
Создание приложения для опросов¶
Теперь, когда ваша среда — «проект» — настроена, вы можете начать
делаю работу.
Каждое приложение, которое вы пишете на Django, состоит из пакета Python, следующего за
определенная конвенция. Django поставляется с утилитой, которая автоматически генерирует
базовая структура каталогов приложения, чтобы вы могли сосредоточиться на написании кода
вместо создания каталогов.
Проекты и приложения
В чем разница между проектом и приложением? Приложение — это Интернет
приложение, которое что-то делает — например, система блогов, база данных
публичные записи или небольшое приложение для опроса.Проект — это собрание
конфигурация и приложения для определенного веб-сайта. Проект может содержать
несколько приложений. Приложение может быть в нескольких проектах.
Ваши приложения могут жить где угодно на вашем пути Python. В
в этом руководстве мы создадим приложение для опроса в том же каталоге, что и ваш
manage.py
файл, чтобы его можно было импортировать как собственный модуль верхнего уровня,
а не подмодуль mysite
.
Чтобы создать приложение, убедитесь, что вы находитесь в том же каталоге, что и manage.py
и введите эту команду:
Это создаст каталог опросов
, который выглядит следующим образом:
опроса / __init__.py admin.py apps.py миграции / __init__.py models.py tests.py views.py
В этой структуре каталогов будет размещаться приложение опроса.
Напишите свой первый просмотр
Напишем первое представление. Откройте файл polls / views.py
и поместите в него следующий код Python:
из django.http импорт HttpResponse def index (запрос): return HttpResponse ("Привет, мир. Вы попали в индекс опроса.")
Это самый простой вид из возможных в Django. Чтобы вызвать представление, нам нужно отобразить
его в URL — а для этого нам понадобится URLconf.
Чтобы создать URLconf в каталоге опросов, создайте файл с именем urls.py
.
Каталог вашего приложения теперь должен выглядеть так:
опроса / __init__.py admin.py apps.py миграции / __init__.py модели.ру tests.py urls.py views.py
В файл polls / urls.py
включите следующий код:
из пути импорта django.urls из . импорт просмотров urlpatterns = [ путь ('', views.index, name = 'index'), ]
Следующим шагом является указание корневого URLconf на модуль polls.urls
. В
mysite / urls.py
, добавьте импорт для django.urls.include
и вставьте
include ()
в списке urlpatterns
, поэтому у вас есть:
из django.contrib import admin из импорта django.urls, путь urlpatterns = [ путь ('polls /', include ('polls.urls')), путь ('admin /', admin.site.urls), ]
Функция include ()
позволяет ссылаться на другие URLconfs.
Всякий раз, когда Django встречает include ()
, он отбрасывает все
часть URL-адреса, совпадающая до этого момента, и отправляет оставшуюся строку в
включен URLconf для дальнейшей обработки.
Идея include ()
состоит в том, чтобы упростить
URL-адреса plug-and-play.Поскольку опросы находятся в собственном URLconf
( polls / urls.py
), их можно разместить в «/ polls /» или в
«/ Fun_polls /», или «/ content / polls /», или любой другой корневой путь, и
приложение по-прежнему будет работать.
Когда использовать include ()
Вы всегда должны использовать include ()
, когда включаете другие шаблоны URL.
admin.site.urls
— единственное исключение.
Теперь вы подключили представление index
к URLconf. Убедитесь, что он работает с
следующая команда:
Перейдите по адресу http: // localhost: 8000 / polls / в своем браузере, и вы должны увидеть
текст « Привет, мир.Вы находитесь в индексе опросов. », который вы определили в
Индекс
просмотр.
Страница не найдена?
Если здесь отображается страница с ошибкой, убедитесь, что вы собираетесь
http: // localhost: 8000 / polls /, а не http: // localhost: 8000 /.
Функции path ()
передаются четыре аргумента, два обязательных:
route
и вид
и два дополнительных: kwargs
и name
.
На этом этапе стоит рассмотреть, для чего нужны эти аргументы.
путь ()
аргумент: маршрут
¶
маршрут
— это строка, содержащая шаблон URL. При обработке запроса
Django запускается с первого шаблона в urlpatterns
и спускается вниз.
список, сравнивая запрошенный URL с каждым шаблоном, пока не найдет один
что совпадает.
Шаблоны
не ищут параметры GET и POST или имя домена. Например,
в запросе на https://www.example.com/myapp/
URLconf будет искать
myapp /
.В запросе на https://www.example.com/myapp/?page=3
URLconf также будет искать myapp /
.
путь ()
аргумент: вид
¶
Когда Django находит соответствующий шаблон, он вызывает указанную функцию просмотра с
объект HttpRequest
в качестве первого аргумента и любой
«Захваченные» значения из маршрута в качестве аргументов ключевого слова. Приведем пример
об этом чуть позже.
путь ()
аргумент: kwargs
¶
Произвольные аргументы ключевого слова могут быть переданы в словаре целевому представлению.Мы
мы не собираемся использовать эту функцию Django в руководстве.
путь ()
аргумент: имя
¶
Присвоение имени URL-адресу позволяет однозначно ссылаться на него из любого места в Django,
особенно из шаблонов. Эта мощная функция позволяет сделать
глобальные изменения в шаблонах URL вашего проекта, затрагивая только один
файл.
Когда вы освоитесь с основным потоком запросов и ответов, прочтите
часть 2 этого руководства, чтобы начать работу с
база данных.
в поддержку Django | Документация Django
Django — это сообщество, которое живет за счет своих добровольцев. Поскольку он продолжает расти, мы
всегда нужно больше людей, чтобы помогать другим. Вы можете внести свой вклад разными способами, либо
на самом фреймворке или в более широкой экосистеме.
Работа над фреймворком Django¶
Сама работа над Django делится на три основных направления:
- Код записи 💻
Исправьте ошибку или добавьте новую функцию.Вы можете сделать запрос на перенос и увидеть ваш
код в следующей версии Django!Начните с написания документации кода.
- Пишущая документация ✍️
Документация Django — одна из его сильных сторон. Это информативно
и тщательно. Вы можете помочь улучшить документацию и сохранить ее
актуально по мере развития структуры.Подробнее см. Написание документации.
- Локализация Django 🗺️
Django переведен более чем на 100 языков. Есть даже
перевод на клингон ?! Команда i18n всегда ищет переводчиков
чтобы помочь сохранить и расширить языковой охват.См. Раздел «Локализация Django», чтобы помочь с переводом Django.
Если вы думаете, что работать с с Django — это весело, подождите, пока вы не начнете работать с на .
Это. На самом деле, ANYONE может что-то сделать, чтобы сделать Django лучше и лучше!
Это вспомогательное руководство содержит все, что вам нужно знать, чтобы помочь в создании
Веб-фреймворк Django. Просмотрите следующие разделы, чтобы узнать, как:
Присоединяйтесь к сообществу Django ❤️¶
Мы стремимся помочь пользователям Django внести свой вклад
члены сообщества.Есть несколько других способов помочь
Сообщество Django и другие, чтобы поддерживать отличную экосистему для работы:
- Присоединяйтесь к форуму Django. Этот форум — место для обсуждения Django
framework и приложения и проекты, которые его используют. Это тоже хорошо
место, чтобы задать и ответить на любые вопросы, связанные с установкой, использованием или
способствуя Django. - Присоединяйтесь к списку рассылки django-users и отвечайте на вопросы. Этот
список рассылки имеет огромную аудиторию, и мы действительно хотим поддерживать
дружелюбная и услужливая атмосфера.Если вы новичок в сообществе Django,
вы должны прочитать правила публикации. - Присоединяйтесь к IRC-каналу #django в Libera.Chat и отвечайте на вопросы. К
объясняя Django другим пользователям, вы многое узнаете о
рамки себя. - Блог о Django. Мы объединяем все известные нам блоги Django на
страница сообщества; если вы хотите видеть свой блог на этой странице, вы
можете зарегистрировать это здесь. - Участвуйте в проектах Django с открытым исходным кодом, напишите документацию или
выпустите свой собственный код как подключаемое приложение с открытым исходным кодом.В
экосистема подключаемых приложений — большая сила Django, помогите нам
построить это!
Будем рады сотрудничеству с вами. Добро пожаловать на борт! ⛵️
Django Web Framework (Python) — Изучите веб-разработку
Django — чрезвычайно популярный и полнофункциональный серверный веб-фреймворк, написанный на Python. Этот модуль показывает вам, почему Django является одной из самых популярных сред веб-серверов, как настроить среду разработки и как начать использовать ее для создания собственных веб-приложений.
Перед запуском этого модуля вам не нужно знать Django. В идеале вам необходимо понять, что такое серверное веб-программирование и веб-фреймворки, прочитав разделы нашего модуля «Первые шаги серверного веб-программирования».
Рекомендуется общее знание концепций программирования и Python, но не обязательно для понимания основных концепций.
Примечание. Python — один из самых простых языков программирования для начинающих.Тем не менее, если вы хотите лучше понять этот модуль, в Интернете есть множество бесплатных книг и учебных пособий, которые могут вам помочь (новые программисты могут захотеть проверить страницу Python для непрограммистов на вики-странице python.org).
- Введение в Django
- В этой первой статье о Django мы отвечаем на вопрос «Что такое Django?» и расскажем, что делает эту веб-платформу особенной. Мы опишем основные функции, включая некоторые расширенные функции, которые у нас не будет времени подробно описывать в этом модуле.Мы также покажем вам некоторые из основных строительных блоков приложения Django, чтобы дать вам представление о том, что оно может делать, прежде чем вы его настроите и начнете играть.
- Настройка среды разработки Django
- Теперь, когда вы знаете, для чего предназначен Django, мы покажем вам, как настроить и протестировать среду разработки Django в Windows, Linux (Ubuntu) и macOS — какую бы распространенную операционную систему вы ни использовали, эта статья должна дать вам то, что вам необходимо начать разработку приложений Django.
- Учебник по Django: веб-сайт местной библиотеки
- В первой статье нашей серии практических руководств объясняется, что вы узнаете, и дается обзор «локальной библиотеки» — примера веб-сайта, над которым мы будем работать и развивать в последующих статьях.
- Учебник по Django, часть 2: Создание скелета веб-сайта
- В этой статье показано, как создать «каркасный» проект веб-сайта, который затем можно будет заполнить настройками, URL-адресами, моделями, представлениями и шаблонами для конкретного сайта.
- Учебник по Django, часть 3: Использование моделей
- В этой статье показано, как определять модели для веб-сайта LocalLibrary — модели представляют структуры данных, в которых мы хотим хранить данные нашего приложения, а также позволяют Django хранить данные в базе данных для нас (и изменять их позже). В нем объясняется, что такое модель, как она объявлена, а также некоторые из основных типов полей. Он также кратко показывает несколько основных способов доступа к данным модели.
- Учебное пособие по Django, часть 4: Административный сайт Django
- Теперь, когда мы создали модели для веб-сайта LocalLibrary , мы воспользуемся сайтом администратора Django, чтобы добавить некоторые «настоящие» данные книги.Сначала мы покажем вам, как регистрировать модели на сайте администратора, затем мы покажем вам, как войти в систему и создать некоторые данные. В конце мы покажем несколько способов, с помощью которых вы можете еще больше улучшить представление админки.
- Учебник по Django, часть 5: Создание домашней страницы
- Теперь мы готовы добавить код для отображения нашей первой полной страницы — домашней страницы для LocalLibrary , которая показывает, сколько записей у нас есть для каждого типа модели, и предоставляет ссылки для навигации на боковой панели на другие наши страницы.Попутно мы получим практический опыт в написании базовых URL-карт и представлений, получении записей из базы данных и использовании шаблонов.
- Учебник по Django, часть 6: Общий список и подробные представления
- Это руководство расширяет наш веб-сайт LocalLibrary , добавляя страницы со списками и подробностями для книг и авторов. Здесь мы узнаем об общих представлениях на основе классов и покажем, как они могут уменьшить объем кода, который вам нужно написать для общих случаев использования. Мы также более подробно рассмотрим обработку URL-адресов, показывая, как выполнять базовое сопоставление с образцом.
- Учебник по Django, часть 7: Фреймворк сессий
- Это руководство расширяет наш веб-сайт LocalLibrary , добавляя счетчик посещений на основе сеанса на домашнюю страницу. Это относительно простой пример, но он показывает, как вы можете использовать структуру сеанса для обеспечения постоянного поведения анонимных пользователей на ваших собственных сайтах.
- Учебник по Django, часть 8: Аутентификация и разрешения пользователей
- В этом руководстве мы покажем вам, как разрешить пользователям входить на ваш сайт с их собственными учетными записями и как контролировать, что они могут делать и видеть, в зависимости от того, вошли ли они в систему и их разрешения .В рамках этой демонстрации мы расширим веб-сайт LocalLibrary , добавив страницы входа и выхода, а также страницы для пользователей и сотрудников для просмотра книг, которые были заимствованы.
- Учебник по Django, часть 9: Работа с формами
- В этом руководстве мы покажем вам, как работать с HTML-формами в Django, и, в частности, самый простой способ написания форм для создания, обновления и удаления экземпляров модели. В рамках этой демонстрации мы расширим веб-сайт LocalLibrary , чтобы библиотекари могли обновлять книги, а также создавать, обновлять и удалять авторов с помощью наших собственных форм (вместо использования приложения администратора).
- Учебное пособие по Django, часть 10: Тестирование веб-приложения Django
- По мере роста веб-сайтов их становится все труднее тестировать вручную — не только становится больше для тестирования, но и по мере того, как взаимодействие между компонентами становится более сложным, небольшое изменение в одной области может потребовать множества дополнительных тестов, чтобы проверить его влияние на другие области. Один из способов смягчить эти проблемы — написать автоматические тесты, которые можно легко и надежно запускать каждый раз, когда вы вносите изменения. В этом руководстве показано, как автоматизировать модульное тестирование вашего веб-сайта с помощью тестовой среды Django.
- Учебное пособие по Django, часть 11: Развертывание Django в рабочей среде
- Теперь, когда вы создали (и протестировали) замечательный веб-сайт LocalLibrary , вы захотите установить его на общедоступном веб-сервере, чтобы к нему могли получить доступ сотрудники библиотеки и члены через Интернет. В этой статье представлен обзор того, как вы можете найти хост для развертывания вашего веб-сайта, и что вам нужно сделать, чтобы подготовить ваш сайт к работе.
- Безопасность веб-приложений Django
- Защита пользовательских данных — неотъемлемая часть дизайна любого веб-сайта.Ранее мы объясняли некоторые из наиболее распространенных угроз безопасности в статье «Веб-безопасность» — эта статья представляет собой практическую демонстрацию того, как встроенные средства защиты Django справляются с такими угрозами.
Следующий экзамен проверит ваше понимание того, как создать веб-сайт с помощью Django, как описано в руководствах, перечисленных выше.
- Блог DIY Django mini
- В этом задании вы будете использовать некоторые знания, полученные из этого модуля, для создания собственного блога.
Введение в Django — Изучение веб-разработки
В этой первой статье о Django мы отвечаем на вопрос «Что такое Django?» и расскажем, что делает эту веб-платформу особенной.
Мы опишем основные функции, включая некоторые расширенные функции, которые у нас не будет времени подробно описывать в этом модуле. Мы также покажем вам некоторые из основных строительных блоков приложения Django (хотя на данный момент у вас еще нет среды разработки, в которой можно было бы его протестировать).
Django — это веб-фреймворк Python высокого уровня, который позволяет быстро разрабатывать безопасные и поддерживаемые веб-сайты. Созданный опытными разработчиками, Django берет на себя большую часть хлопот веб-разработки, поэтому вы можете сосредоточиться на написании своего приложения, не изобретая велосипед. Он бесплатный и имеет открытый исходный код, имеет процветающее и активное сообщество, отличную документацию и множество вариантов бесплатной и платной поддержки.
Django помогает писать программное обеспечение:
- Завершено
- Django следует философии «Батареи включены» и предоставляет почти все, что разработчики могут захотеть сделать «из коробки».Поскольку все, что вам нужно, является частью одного «продукта», все это работает безупречно вместе, следует последовательным принципам проектирования и имеет обширную и актуальную документацию.
- Универсальный
- Django может использоваться (и использовался) для создания почти любого типа веб-сайтов — от систем управления контентом и вики-сайтов до социальных сетей и новостных сайтов. Он может работать с любой клиентской средой и может доставлять контент практически в любом формате (включая HTML, RSS-каналы, JSON, XML и т. Д.).Сайт, который вы сейчас читаете, построен на Django!
Внутренне, хотя он предоставляет выбор практически для любых функций, которые могут вам понадобиться (например, для нескольких популярных баз данных, механизмов шаблонов и т. Д.), Он также может быть расширен для использования других компонентов, если это необходимо.
- Безопасность
- Django помогает разработчикам избежать многих распространенных ошибок безопасности, предоставляя платформу, которая была спроектирована так, чтобы «делать правильные вещи» для автоматической защиты веб-сайта. Например, Django предоставляет безопасный способ управления учетными записями пользователей и паролями, избегая распространенных ошибок, таких как размещение информации о сеансе в файлах cookie, где она уязвима (вместо этого файлы cookie просто содержат ключ, а фактические данные хранятся в базе данных) или непосредственное хранение паролей. а не хеш пароля.
Хэш пароля — это значение фиксированной длины, созданное путем отправки пароля с помощью криптографической хеш-функции. Django может проверить правильность введенного пароля, запустив его через хеш-функцию и сравнив вывод с сохраненным хеш-значением. Однако из-за «одностороннего» характера функции, даже если сохраненное значение хеш-функции скомпрометировано, злоумышленнику сложно выработать исходный пароль.
Django по умолчанию обеспечивает защиту от многих уязвимостей, включая SQL-инъекции, межсайтовые сценарии, подделку межсайтовых запросов и кликджекинг (более подробную информацию о таких атаках см. В разделе «Безопасность веб-сайтов»).
- Масштабируемый
- Django использует компонентную архитектуру «без совместного использования» (каждая часть архитектуры не зависит от других и, следовательно, может быть заменена или изменена при необходимости). Четкое разделение между различными частями означает, что его можно масштабировать для увеличения трафика путем добавления оборудования на любом уровне: кэширующие серверы, серверы баз данных или серверы приложений. Некоторые из самых загруженных сайтов успешно масштабировали Django для удовлетворения своих требований (например, Instagram и Disqus, если назвать только два).
- Ремонтопригодный
- Django написан с использованием принципов и шаблонов дизайна, которые способствуют созданию поддерживаемого и повторно используемого кода. В частности, он использует принцип «Не повторяйся» (DRY), что исключает ненужное дублирование и сокращает объем кода. Django также способствует группированию связанных функций в повторно используемые «приложения» и, на более низком уровне, группирует связанный код в модули (в соответствии с шаблоном Model View Controller (MVC)).
- Портативный
- Django написан на Python, который работает на многих платформах. Это означает, что вы не привязаны к какой-либо конкретной серверной платформе и можете запускать свои приложения на многих разновидностях Linux, Windows и Mac OS X. Кроме того, Django хорошо поддерживается многими поставщиками веб-хостинга, которые часто предоставляют определенную инфраструктуру и документация по размещению сайтов Django.
Код
Django был первоначально разработан в период с 2003 по 2005 год веб-командой, которая отвечала за создание и поддержку веб-сайтов газет.После создания нескольких сайтов команда начала исключать и повторно использовать много общего кода и шаблонов проектирования. Этот общий код превратился в общую структуру веб-разработки, исходный код которой был открыт как проект «Django» в июле 2005 года.
Django продолжал расти и совершенствоваться, начиная со своего первого контрольного выпуска (1.0) в сентябре 2008 года до недавно выпущенной версии 3.1 (2020). В каждом выпуске добавлялись новые функции и исправления ошибок, начиная от поддержки новых типов баз данных, механизмов шаблонов и кеширования до добавления «общих» функций и классов представления (которые сокращают объем кода, который разработчики должны писать для ряд задач по программированию).
Примечание: Ознакомьтесь с примечаниями к выпуску на веб-сайте Django, чтобы узнать, что изменилось в последних версиях, и сколько работы предстоит сделать для улучшения Django.
Django — это сейчас процветающий совместный проект с открытым исходным кодом, в котором участвуют тысячи пользователей и участников. Несмотря на то, что у него все еще есть некоторые функции, которые отражают его происхождение, Django превратился в универсальную платформу, которая способна разрабатывать любой тип веб-сайта.
Нет готового и окончательного измерения популярности серверных фреймворков (хотя вы можете оценить популярность, используя такие механизмы, как подсчет количества проектов GitHub и вопросов StackOverflow для каждой платформы).Лучше спросить, достаточно ли популярен Django, чтобы избежать проблем, связанных с непопулярными платформами. Он продолжает развиваться? Можете ли вы получить помощь, если она вам понадобится? Есть ли у вас возможность получить оплачиваемую работу, если вы изучаете Django?
Судя по количеству популярных сайтов, использующих Django, количеству людей, вносящих свой вклад в базу кода, и количеству людей, предоставляющих как бесплатную, так и платную поддержку, то да, Django — популярный фреймворк!
Известные сайты, использующие Django, включают: Disqus, Instagram, Knight Foundation, MacArthur Foundation, Mozilla, National Geographic, Open Knowledge Foundation, Pinterest и Open Stack (источник: обзорная страница Django).
Веб-фреймворки часто называют себя «самоуверенными» или «неверующими».
Фреймворки с мнением — это те, кто придерживается мнения о «правильном способе» решения любой конкретной задачи. Они часто поддерживают быструю разработку в определенной области (решение проблем определенного типа), потому что правильный способ сделать что-либо обычно хорошо понят и хорошо задокументирован. Однако они могут быть менее гибкими при решении проблем за пределами своей основной области и, как правило, предлагают меньше вариантов того, какие компоненты и подходы они могут использовать.
Непредвиденные фреймворки, напротив, имеют гораздо меньше ограничений на лучший способ склеивания компонентов для достижения цели или даже на то, какие компоненты следует использовать. Они упрощают разработчикам использование наиболее подходящих инструментов для выполнения конкретной задачи, хотя и за счет того, что вам придется самостоятельно найти эти компоненты.
Django «несколько самоуверен» и, следовательно, предлагает «лучшее из обоих миров». Он предоставляет набор компонентов для решения большинства задач веб-разработки и один (или два) предпочтительных способа их использования.Однако независимая архитектура Django означает, что вы обычно можете выбирать из множества различных вариантов или при желании добавлять поддержку совершенно новых.
На традиционном веб-сайте, управляемом данными, веб-приложение ожидает HTTP-запросов от веб-браузера (или другого клиента). Когда запрос получен, приложение определяет, что необходимо, на основе URL-адреса и, возможно, информации в данных POST
или данных GET
. В зависимости от того, что требуется, он может затем читать или записывать информацию из базы данных или выполнять другие задачи, необходимые для удовлетворения запроса.Затем приложение вернет ответ веб-браузеру, часто динамически создавая HTML-страницу для отображения браузером, вставляя полученные данные в заполнители в шаблоне HTML.
Веб-приложения Django обычно группируют код, который обрабатывает каждый из этих шагов, в отдельные файлы:
- URL-адреса: Хотя можно обрабатывать запросы от каждого отдельного URL-адреса с помощью одной функции, гораздо удобнее написать отдельную функцию просмотра для обработки каждого ресурса.Устройство сопоставления URL-адресов используется для перенаправления HTTP-запросов в соответствующее представление на основе URL-адреса запроса. Устройство сопоставления URL-адресов также может сопоставлять определенные шаблоны строк или цифр, которые появляются в URL-адресе, и передавать их в функцию просмотра в виде данных.
- Представление: Представление — это функция обработчика запросов, которая принимает HTTP-запросы и возвращает HTTP-ответы. Представления получают доступ к данным, необходимым для удовлетворения запросов, через модели и делегируют форматирование ответа шаблонам .
- Модели: Модели — это объекты Python, которые определяют структуру данных приложения и предоставляют механизмы для управления (добавления, изменения, удаления) и запроса записей в базе данных.
- Шаблоны: Шаблон — это текстовый файл, определяющий структуру или макет файла (например, HTML-страницы), с заполнителями, используемыми для представления фактического содержимого. Представление может динамически создавать HTML-страницу с использованием шаблона HTML, заполняя ее данными из модели .Шаблон можно использовать для определения структуры любого типа файла; это не обязательно должен быть HTML!
Примечание: Django называет эту организацию архитектурой «Шаблон представления модели (MVT)». Он имеет много общего с более знакомой архитектурой Model View Controller.
Разделы ниже дадут вам представление о том, как выглядят эти основные части приложения Django (более подробно мы рассмотрим позже в этом курсе, как только мы настроим среду разработки).
Отправка запроса в правое представление (urls.py)
Устройство сопоставления URL-адресов обычно хранится в файле с именем urls.py .
В приведенном ниже примере средство сопоставления ( шаблонов URL,
) определяет список сопоставлений между маршрутами, (определенные шаблоны URL ), и соответствующими функциями просмотра.
Если получен HTTP-запрос, URL-адрес которого соответствует указанному шаблону, то будет вызвана соответствующая функция просмотра и передана запрос.
urlpatterns = [
путь ('admin /', admin.([0-9] +) / $ ', views.best),
]
Объект urlpatterns
представляет собой список функций path (),
и / или re_path ()
(списки Python определяются с использованием квадратных скобок, где элементы разделены запятыми и могут иметь необязательную конечную запятую. Например: [элемент1, элемент2, элемент3,]
).
Первый аргумент обоих методов — это маршрут (шаблон), который будет сопоставлен. Метод path ()
использует угловые скобки для определения частей URL-адреса, которые будут захвачены и переданы в функцию просмотра в качестве именованных аргументов.Функция re_path ()
использует гибкий подход сопоставления с образцом, известный как регулярное выражение. Мы поговорим об этом в следующей статье!
Второй аргумент — это другая функция, которая будет вызываться при сопоставлении шаблона. Обозначение views.book_detail
указывает, что функция называется book_detail ()
и может быть найдена в модуле views
(т.е. внутри файла с именем views.py
)
Обработка запроса (views.py)
Представления — это сердце веб-приложения, они получают HTTP-запросы от веб-клиентов и возвращают HTTP-ответы. В промежутках они упорядочивают другие ресурсы фреймворка для доступа к базам данных, шаблонам рендеринга и т. Д.
В приведенном ниже примере показана функция минимального представления index ()
, которая могла быть вызвана нашим преобразователем URL-адресов в предыдущем разделе. Как и все функции представления, он получает объект HttpRequest
в качестве параметра (запрос
) и возвращает объект HttpResponse
.В этом случае мы ничего не делаем с запросом, и наш ответ возвращает жестко запрограммированную строку. Мы покажем вам более интересный запрос в следующем разделе.
из django.http import HttpResponse
def index (запрос):
return HttpResponse ('Привет от Django!')
Примечание: Немного Python:
- Модули Python — это «библиотеки» функций, хранящиеся в отдельных файлах, которые мы, возможно, захотим использовать в нашем коде.Здесь мы импортируем только объект
HttpResponse
из модуляdjango.http
, чтобы мы могли использовать его в нашем представлении:из django.http import HttpResponse
. Есть и другие способы импорта некоторых или всех объектов из модуля. - Функции объявляются с использованием ключевого слова
def
, как показано выше, с именованными параметрами, перечисленными в скобках после имени функции; вся строка заканчивается двоеточием. Обратите внимание на то, что все следующие строки имеют отступ .Отступ важен, поскольку он указывает, что строки кода находятся внутри этого конкретного блока (обязательный отступ — ключевая особенность Python и одна из причин, по которой код Python так легко читается).
Представления обычно хранятся в файле с именем views.py .
Определение моделей данных (models.py)
Веб-приложения Django управляют и запрашивают данные с помощью объектов Python, называемых моделями. Модели определяют структуру хранимых данных, включая поля , типы и, возможно, их максимальный размер, значения по умолчанию, параметры списка выбора, текст справки для документации, текст метки для форм и т. Д.Определение модели не зависит от базовой базы данных — вы можете выбрать одну из нескольких как часть настроек вашего проекта. После того, как вы выбрали, какую базу данных хотите использовать, вам вообще не нужно разговаривать с ней напрямую — вы просто пишете структуру своей модели и другой код, а Django берет на себя всю «грязную работу» связи с базой данных для ты.
Приведенный ниже фрагмент кода показывает очень простую модель Django для объекта Team
. Класс Team
является производным от моделей класса django.Модель
. Он определяет название команды и уровень команды как поля символов и определяет максимальное количество символов, которые должны быть сохранены для каждой записи. team_level
может быть одним из нескольких значений, поэтому мы определяем его как поле выбора и обеспечиваем сопоставление между отображаемыми вариантами и данными, которые нужно сохранить, вместе со значением по умолчанию.
из моделей импорта django.db
class Team (models.Model):
team_name = models.CharField (max_length = 40)
TEAM_LEVELS = (
('U09', 'До 9 лет'),
(«До 10 лет», «до 10 лет»),
(«U11», «До 11 лет»),
...
)
team_level = models.CharField (max_length = 3, choices = TEAM_LEVELS, по умолчанию = 'U11')
Примечание: Немного Python:
- Python поддерживает «объектно-ориентированное программирование», стиль программирования, при котором мы организуем наш код в объекты, которые включают связанные данные и функции для работы с этими данными. Объекты также могут наследовать / расширять / наследовать от других объектов, что позволяет совместно использовать общее поведение между связанными объектами. В Python мы используем ключевое слово
class
для определения «чертежа» объекта.Мы можем создать несколько конкретных экземпляров типа объекта на основе модели в классе.Так, например, у нас есть класс
Team
, который является производным от классаModel
. Это означает, что это модель, и она будет содержать все методы модели, но мы также можем придать ей собственные специализированные функции. В нашей модели мы определяем поля, которые потребуются нашей базе данных для хранения наших данных, давая им определенные имена. Django использует эти определения, включая имена полей, для создания базовой базы данных.
Запрос данных (views.py)
Модель Django предоставляет простой API запросов для поиска в связанной базе данных. Это может соответствовать нескольким полям одновременно с использованием разных критериев (например, точно, без учета регистра, больше, чем и т. Д.) И может поддерживать сложные утверждения (например, вы можете указать поиск по командам U11, у которых есть команда имя, которое начинается на «Fr» или заканчивается на «al»).
Во фрагменте кода показана функция просмотра (обработчик ресурсов) для отображения всех наших команд U09.Строка list_teams = Team.objects.filter (team_level__exact = "U09")
показывает, как мы можем использовать API запроса модели для фильтрации всех записей, в которых поле team_level
имеет в точности текст ‘ U09
‘ (обратите внимание, как этот критерий передается в функцию filter ()
в качестве аргумента с именем поля и типом соответствия, разделенными двойным подчеркиванием: team_level__exact
).
из django.shortcuts import render
из .команда импорта моделей
def index (запрос):
list_teams = Team.objects.filter (team_level__exact = "U09")
context = {'youngest_teams': list_teams}
возврат рендеринга (запрос, '/best/index.html', контекст)
Эта функция использует функцию render ()
для создания HttpResponse
, который отправляется обратно в браузер. Эта функция является ярлыком ; он создает файл HTML, комбинируя указанный шаблон HTML и некоторые данные для вставки в шаблон (предоставленные в переменной с именем « context
»).В следующем разделе мы покажем, как в шаблон вставляются данные для создания HTML.
Отрисовка данных (шаблоны HTML)
Системы шаблонов позволяют указать структуру выходного документа, используя заполнители для данных, которые будут заполняться при создании страницы. Шаблоны часто используются для создания HTML, но могут также создавать другие типы документов. Django из коробки поддерживает как собственную систему шаблонов, так и другую популярную библиотеку Python под названием Jinja2 (при необходимости ее также можно настроить для поддержки других систем).
Фрагмент кода показывает, как может выглядеть HTML-шаблон, вызванный функцией render ()
в предыдущем разделе. Этот шаблон был написан с предположением, что он будет иметь доступ к переменной списка с именем youngest_teams
при его визуализации (она содержится в контекстной переменной внутри функции render ()
выше). Внутри скелета HTML у нас есть выражение, которое сначала проверяет, существует ли переменная youngest_teams
, а затем выполняет итерацию в цикле for
.На каждой итерации шаблон отображает значение team_name
каждой команды в элементе
Домашняя страница
{% if youngest_teams%}
{% за команду в youngest_teams%}
- {{team.team_name}}
{% endfor%}
{% еще %}
Нет доступных команд.
{% endif%}
В предыдущих разделах показаны основные функции, которые вы будете использовать практически в каждом веб-приложении: сопоставление URL-адресов, представления, модели и шаблоны. Вот лишь некоторые из других вещей, предоставляемых Django:
- Формы : HTML-формы используются для сбора пользовательских данных для обработки на сервере. Django упрощает создание, проверку и обработку форм.
- Аутентификация и разрешения пользователей : Django включает надежную систему аутентификации и разрешений пользователей, созданную с учетом требований безопасности.
- Кэширование : динамическое создание контента требует гораздо больших вычислительных ресурсов (и медленнее), чем обслуживание статического контента. Django обеспечивает гибкое кэширование, так что вы можете хранить всю или часть отображаемой страницы, чтобы она не подвергалась повторной визуализации, кроме случаев, когда это необходимо.
- Сайт администрирования : сайт администрирования Django включается по умолчанию, когда вы создаете приложение с использованием базового каркаса. Это упрощает создание административной страницы для администраторов сайта для создания, редактирования и просмотра любых моделей данных на вашем сайте.
- Сериализация данных : Django упрощает сериализацию и обслуживание ваших данных как XML или JSON. Это может быть полезно при создании веб-службы (веб-сайт, который просто обслуживает данные для использования другими приложениями или сайтами и сам ничего не отображает) или при создании веб-сайта, на котором код на стороне клиента обрабатывает всю визуализацию. данных.
Поздравляем, вы сделали первый шаг в своем путешествии по Django! Теперь вы должны понять основные преимущества Django, немного об его истории и примерно то, как может выглядеть каждая из основных частей приложения Django.Вы также должны были узнать кое-что о языке программирования Python, включая синтаксис для списков, функций и классов.
Вы уже видели реальный код Django выше, но, в отличие от клиентского кода, вам необходимо настроить среду разработки для его запуска. Это наш следующий шаг.
Что такое Python и Django и почему они считаются лучшим выбором для веб-разработки?
Выбор языка программирования для вашего продукта — серьезная проблема. Это важное решение.Существует множество языков программирования, но обычно пара поддается вашим конкретным целям.
Здесь, в SteelKiwi, Python и веб-фреймворк Django являются нашими основными инструментами для внутренней веб-разработки. Как одна из ведущих компаний-разработчиков Python и Django, у нас есть ряд причин для разработки веб-проектов с использованием этих технологий. В этой статье мы расскажем вам, что такое Python и Django, почему они так популярны, кто их использует и почему вам следует рассмотреть возможность веб-разработки на Python с помощью Django.
Что, кто и почему веб-разработки на Python
Чтобы выяснить, является ли Python лучшим вариантом веб-разработки для вашего программного обеспечения, вам следует подробно изучить Python. И первое, что нужно учитывать, — это то, что такое Python.
Что такое Python?
При написании приложения электронной почты на языке C примерно в 1990 году Гвидо ван Россум столкнулся с некоторыми трудностями при создании программы входа в систему, поскольку еще не существовало систем для управления логинами и паролями. Чувствуя, что эта программа входа в систему требует слишком много написания на C, ван Россум придумал идею Python.Впервые представленный публике в 1991 году, Python был самым любимым языком в 2018 году согласно ежегодному опросу Stack Overflow. Что такого особенного в Python? И почему это так популярно? Давайте сначала ответим на вопрос, что такое Python.
Согласно Python Software Foundation, «Python — это интерпретируемый объектно-ориентированный язык программирования высокого уровня с динамической семантикой». Давайте разберемся с этим.
- Python — это язык программирования высокого уровня , что означает, что он содержит слова и фразы, понятные человеку.Для перевода этого высокоуровневого языка в машинный код Python использует интерпретатор . Интерпретатор преобразует исходный код в код, понятный компьютерам. Как интерпретируемый язык Python эффективно использует память, его легко отлаживать, он позволяет разработчикам выполнять сложные задачи за пару шагов и быстро редактировать код.
- Большинство современных языков программирования, включая Python, считаются объектно-ориентированными . Идея объектно-ориентированных языков заключается в том, что программа разбита на независимые объекты, которые взаимодействуют между собой.Это очень похоже на набор мини-программ. Объекты помогают разработчикам писать лучше структурированный код, в результате чего программное обеспечение становится проще и быстрее создавать, поддерживать и отлаживать.
- Python — это динамический язык . Это означает, что разработчикам не нужно объявлять типы переменных. Python проверяет типы и ошибки во время выполнения (при запуске программы), но не во время компиляции (когда исходный код преобразуется в машинный код). Это приводит к меньшему количеству кода, более быстрой разработке, большей гибкости и устойчивости.
Почему Python хорош для веб-разработки?
Python продолжает оставаться одним из самых популярных языков. Согласно TIOBE, Python входит в число лучших языков программирования. BuiltWith утверждает, что существует почти миллион веб-сайтов, использующих Python.
Python одинаково ценится среди стартапов, таких как финансовые стратеги, компаний среднего размера, таких как EP Wealth, голубых фишек, таких как Google, Quora, Netflix и Spotify, а также правительственных организаций, таких как NASA.Однако мало кто знает, почему Python является одним из лучших языков программирования для разработки веб-сайтов. Так почему же он приобрел большую популярность и интерес среди основателей стартапов?
Вот что говорит Python Software Foundation:
Python мощный… и быстрый; хорошо играет с другими; везде бегает; дружелюбен и прост в освоении; открыт.
Мощный и быстрый
Python мощный, и его можно использовать буквально для чего угодно. Прежде всего, его можно использовать для чего угодно, потому что по умолчанию он предлагает множество функций со стандартными библиотеками, которые охватывают практически любую задачу программирования.Выполняете ли вы научные расчеты, обрабатываете изображения или разрабатываете интерфейсы или протоколы операционных систем, Python экономит время и усилия, предоставляя готовые решения.
Кроме того, Python хорошо подходит для продуктов, которые вы хотите вывести на рынок как можно скорее. Как для стартапов, так и для устоявшихся предприятий это означает более быструю окупаемость инвестиций (ROI) и возможность адаптировать продукт на основе отзывов и отзывов реальных пользователей.
Хорошо сочетается с другими
Python достаточно функциональный, чтобы взаимодействовать с кодом, написанным на других языках программирования.Вы можете встроить свой проект Python в фреймворки разных языков и наоборот. Это означает, что вы можете создавать проекты, сочетающие Python с другими языками программирования (например, C ++), и получать лучшее из двух миров.
Работает везде
Python доступен практически для любой операционной системы, включая операционные системы на основе UNIX, Windows, macOS, iOS и Android. Он также работает на различных платформах, включая IBM, AIX, Solaris и VMS.
Дружественный и легкий в изучении
Python считается высокоэффективным способом программирования из-за его простого синтаксиса и удобочитаемости.Python — это простой в освоении язык, поэтому у него достаточно большой кадровый резерв.
Поскольку Python использует интервалы вместо фигурных скобок и других специальных символов для обозначения начала и конца программных конструкций, удобочитаемость является встроенной функцией. Всякий раз, когда вам нужно обновить проект на Python, относительно легко найти человека, который сможет взглянуть на его код и внести необходимые изменения, даже если они никогда его раньше не видели. Разработчикам не нужно тратить много времени на размышления о сложностях языка или на расшифровку чужого кода.
Open
Python — это язык с открытым исходным кодом, управляемый и поддерживаемый независимым некоммерческим фондом: Python Software Foundation. Одним из основных преимуществ программного обеспечения с открытым исходным кодом является то, что его можно использовать, изменять и распространять бесплатно. Поскольку сообщество Python открыто для всех и поощряет разнообразие, миллионы опытных разработчиков по всему миру вносят свой вклад и добавляют в растущую базу данных Python с открытым исходным кодом. Есть множество конференций и встреч, а также много совместной работы над кодом.Это означает, что Python менее склонен к ошибкам и более безопасен, чем некоторые другие популярные языки. Кроме того, это помогает минимизировать расходы на разработку.
Кто использует Python?
Python — это многоцелевой язык, с его помощью можно создавать практически все, что угодно. Компании по всему миру используют Python для искусственного интеллекта и машинного обучения, разработки веб-сайтов, научных и числовых вычислений, игр и многих других целей.
Что касается искусственного интеллекта, Python стоит над другими языками программирования и считается лучшим языком программирования для приложений на базе искусственного интеллекта.Фактически, Python решает любую задачу искусственного интеллекта: машинное обучение, анализ и визуализацию данных, обработку естественного языка и компьютерное зрение.
Десятки компаний используют Python в той или иной форме из-за его гибкости, масштабируемости, производительности и быстрой разработки. Ниже приведены примеры предприятий, широко использующих Python.
Python был важной частью Google с самого начала и остается таковой по мере роста и развития системы.Сегодня десятки инженеров Google используют Python, и мы ищем больше людей, владеющих этим языком.
— Питер Норвиг, директор по исследованиям Google
Google — одна из крупнейших компаний, использующих Python. Первая версия поисковой системы Google и весь стек технологий были написаны на Python. Сегодня Python является одним из трех основных языков программирования, используемых Google, наряду с Java и C ++.
Google держит руку на пульсе: поиск, электронная почта, потоковое воспроизведение музыки и видео, оборудование, автомобили без водителя и реклама.Фактически, весь стек технологий YouTube написан на Python. Первоначально YouTube был написан на PHP. Однако из-за быстрого роста пользователей и необходимости быстро разрабатывать и внедрять новые функции YouTube вскоре перешел на Python. Куонг До, архитектор программного обеспечения YouTube, говорит, что «Python достаточно быстр для нашего сайта и позволяет нам создавать поддерживаемые функции в рекордно короткие сроки при минимальном количестве разработчиков».
Еще одним крупным игроком, использующим Python, является Facebook.Наряду с PHP и C ++, Python помогает Facebook эффективно и надежно поддерживать, управлять и масштабировать свою инфраструктуру.
Facebook также использует Python для машинного обучения. В Facebook алгоритмы машинного обучения используются для обработки контента в ленте новостей и для обнаружения объектов на фотографиях. Пользователей Facebook узнают на фотографиях, даже если они не отмечены тегами. А для людей с нарушениями зрения Facebook описывает фотографии словами.
Dropbox
Dropbox — это облачная платформа для хранения документов, музыки, изображений, видео и многого другого.Приложение Dropbox доступно на большинстве устройств и предлагает пользователям доступ в любое время и в любом месте. Dropbox с самого начала использует Python для всего технологического стека. Во-первых, это был код Python с использованием PyWin32: одной из библиотек Python для функций, специфичных для Windows. Позже они перешли на Python 2, а затем на Python 3. В настоящее время приложение Dropbox использует настроенную версию Python 3.5. Они также используют платформу Django, которая поддерживает функции хранения файлов, синхронизацию учетных записей и совместное использование файлов.
Альтернативы Python
Python часто сравнивают с другими языками программирования. Ниже мы кратко сравним наиболее распространенные альтернативы Python: Java, PHP и Ruby.
источник: steelkiwi.com
Что, кто и почему веб-разработки Django
Если вы решили создать веб-сайт на Python, пора подумать о выборе фреймворка. Поскольку мы являемся компанией, занимающейся разработкой программного обеспечения для Python и специализирующейся на Django, мы рассмотрим все важные аспекты веб-разработки на Python с помощью Django, чтобы выяснить, подходит ли это вам для вашего стартапа.
Что такое Джанго?
Django — это бесплатная полнофункциональная платформа веб-приложений с открытым исходным кодом, написанная на Python. Проще говоря, Django — это набор готовых компонентов, которые помогут вам быстро создавать веб-сайты с прагматичной и чистой архитектурой. При создании веб-сайтов разработчикам часто требуются одни и те же компоненты для таких задач, как аутентификация пользователей, загрузка файлов и внедрение систем CMS. Чтобы не изобретать велосипед каждый раз, когда вы создаете новый сайт, Django предоставляет готовые решения.
В чем разница между ядром Python и Django?
Python и Django взаимосвязаны, но не одинаковы. Python — это язык программирования, который используется для множества различных приложений: искусственного интеллекта, машинного обучения, настольных приложений и т. Д. С другой стороны, Django — это среда Python для разработки полнофункциональных веб-приложений и разработки серверов.
Вы можете создать веб-сайт либо с нуля на ядре Python, придя к решению самостоятельно, либо вы можете создать свое приложение с помощью Django, используя заранее написанные фрагменты кода.
Почему Django хорош для веб-разработки?
Среди фреймворков Python Django часто считается лучшим фреймворком для разработки веб-приложений. Он даже был включен в список самых любимых фреймворков в опросе разработчиков Stack Overflow 2018.
Согласно Django Software Foundation, Django был «изобретен для того, чтобы соответствовать быстро меняющимся срокам редакции новостей, при этом удовлетворяя жесткие требования опытных веб-разработчиков». Фреймворк был изобретен Адрианом Головати и Саймоном Уиллисоном, разработчиками, которые работали на новостном сайте World Online.В то время Адриан и Саймон писали на PHP. Но поскольку веб-сайт World Online требовал быстрого обновления, стало трудно уложиться в сроки. Адриану и Саймону нужно было что-то, с чем они могли бы быстро создать веб-сайт. Тогда они решили перейти на Python. Позже они начали работать над Django, чтобы сделать кодирование еще проще и эффективнее. В 2005 году Django уже был публично выпущен как проект с открытым исходным кодом. Сегодня Django известен как
Веб-фреймворк для перфекционистов с соблюдением сроков.
Для перфекционистов
Благодаря простому синтаксису и удобочитаемому коду программы, написанные на Django, чисты и хорошо структурированы. Это помогает разработчикам воплощать свои идеи в жизнь и быстрее выполнять требования.
С соблюдением сроков
Django был создан, чтобы помочь создавать программное обеспечение как можно быстрее. Философия Don’t Repeat Yourself (DRY), на которой построен Django, побуждает разработчиков повторно использовать написанный ими код для других проектов, что еще больше сокращает время, необходимое для разработки вашего продукта.Поэтому, если у вас мало времени и ограниченный бюджет, или если вы часто работаете в сжатые сроки и уделяете большое внимание инновациям, то Django — идеальное решение.
Это не единственное, что делает Django лучшим выбором для веб-разработки. Веб-фреймворк Django предоставляет еще больше замечательных функций.
Батарейки включены
Батарейки Django включены Подход означает, что во фреймворке есть все необходимое для разработки полноценного приложения.Django предлагает встроенные шаблоны HTML, маршрутизацию URL-адресов, объектно-реляционное сопоставление и управление сеансами, помогая разработчикам избежать утомительного поиска сторонних инструментов. Сотни пакетов Django помогут вам быстро создать что угодно, от чат-ботов до сложных решений с поддержкой GPS.
Легко расширяется и масштабируется
Компоненты Django отделены друг от друга, то есть их можно добавлять или удалять по мере необходимости, как детали Lego. В зависимости от требований вашего продукта, разработка может быть увеличена или уменьшена, при необходимости изменяя количество и сложность компонентов Django.
Подробнее: Рекомендации по работе с моделями Django в Python
Обеспечивает надежную безопасность
По умолчанию Django защищает приложения. Он устраняет некоторые из наиболее распространенных ошибок безопасности, связанных с Python, а также защищает приложения от межсайтовых сценариев, подделки запросов и SQL-инъекций.
Работает с большинством основных баз данных
Объектно-реляционное отображение (ORM) Django совместимо с рядом популярных баз данных, но его ключевой особенностью является то, что оно позволяет разработчикам работать с несколькими базами данных одновременно.Более того, Django позволяет переходить из одной базы данных в другую и выполнять стандартные операции без необходимости написания большого количества дополнительного кода.
Помогает с поисковой оптимизацией
Помимо прочего, Django предлагает ряд полезных инструментов поисковой оптимизации (SEO). С помощью фреймворка Django SEO разработчики могут сократить время загрузки страницы за счет использования кэшированных шаблонов и сжатия CSS и JavaScript. Есть даже инструмент для управления robots.txt. В целом возможности системы управления контентом Django превосходят ожидания многих специалистов по SEO, доказывая, что Django — одна из лучших платформ для поисковой оптимизации.
Постоянно развивается благодаря сообществу
Вокруг Django существует большое сообщество, к которому с каждым днем присоединяется все больше энтузиастов. Они постоянно обновляют и улучшают компоненты фреймворка, а также разрабатывают новые библиотеки для решения проблем, с которыми профессионалы часто сталкиваются при разработке веб-приложений.
Кто использует Django?
Ниже мы перечислили некоторые из крупных компаний, которые извлекают выгоду из этой технологии. Давайте посмотрим, как Django помог этим компаниям расти и развиваться.
Disqus
Disqus — это стороннее приложение для комментирования блогов и онлайн-сообществ. Он помогает удерживать пользователей и анализировать аудиторию, предоставляет рекламные возможности и предлагает инструменты для взаимодействия с пользователями. В начале Disqus рассматривал различные архитектуры, но остановил свой выбор на Python, Django, Thoonk и Nginx Push Stream Module. На Disqus Django обеспечивает настраиваемую аналитику, интеграцию с социальными сетями и управление присутствием в Интернете.
Disqus использовал фреймворк Django не только для разработки и масштабирования, но и для создания Sentry — побочного проекта, изначально предназначенного для внутреннего использования.Позже Sentry стал приложением с открытым исходным кодом, которое помогает компаниям отслеживать и отлаживать ошибки и исправлять сбои в их системах. Сегодня более 30 000 компаний, включая Doordash, Instagram, Reddit, Prezi и Datadog, используют Sentry.
Веб-фреймворк Django популярен среди платформ социальных сетей, поскольку он может обрабатывать большие объемы данных и управлять значительным количеством взаимодействий с пользователем в минуту.
Имея более одного миллиарда активных пользователей в месяц, ежедневно публикуя более 500 миллионов историй и ежедневно загружая более 100 миллионов фотографий, Instagram необходимо обеспечить максимальную эффективность, чтобы платформа могла плавно масштабироваться без ущерба для качества.Django помогает им справиться с этим. Фактически, в Instagram самое большое развертывание Django в мире.
По мере роста Instagram они начали рассматривать новый стек технологий. Тем не менее, тщательно взвесив все за и против, они решили придерживаться Python и Django. В интервью Хуэй Дин, бывший руководитель инженерной группы Instagram, сказал, что «нам удалось привлечь несколько сотен миллионов пользователей с помощью нашего стека Python / Django, поэтому мы решили, что продолжим. Важным моментом в решении стало то, что наши инженеры действительно любят Python.На самом деле это причина, по которой люди хотят работать у нас «.
Альтернативы Django
Pyramid, Laravel, Symfony и Ruby on Rails — это фреймворки, которые часто рассматриваются как альтернативы Django.
источник: steelkiwi.com
Если вы хотите быть в курсе наших новых тематических исследований и увидеть больше проектов, которые мы разработали с использованием Python и Django, посетите страницу проектов SteelKiwi или подпишитесь на нас в социальных сетях. Чтобы передать нам разработку Python на аутсорсинг, свяжитесь с одним из наших торговых представителей.Вы также можете найти работу программиста Python с Jooble.
Полезные ссылки
- Пример одноэлементного шаблона проектирования: одноэлементные модели в Django
- Из первых рук: шаблон проекта Django от SteelKiwi
- Интеграция сервера WebSocket, написанного на aiohttp, в существующий проект Django
Что такое Django? — PythonForBeginners.com
Django — это бесплатный фреймворк для веб-приложений с открытым исходным кодом, написанный на Python. Фреймворк — это не что иное, как набор модулей, упрощающих разработку.Они сгруппированы вместе и позволяют создавать приложения или веб-сайты из существующего источника, а не с нуля.
Таким образом, веб-сайты — даже простые, созданные одним человеком — могут по-прежнему включать расширенные функции, такие как поддержка аутентификации, панели управления и администрирования, контактные формы, поля для комментариев, поддержка загрузки файлов и многое другое. Другими словами, если вы создавали веб-сайт с нуля, вам нужно было бы разработать эти компоненты самостоятельно. Вместо этого, используя фреймворк, эти компоненты уже созданы, вам просто нужно правильно их настроить, чтобы они соответствовали вашему сайту.
Официальный сайт проекта описывает Django как «высокоуровневую веб-среду Python, которая способствует быстрой разработке и чистому, прагматичному дизайну. Созданный опытными разработчиками, он берет на себя большую часть хлопот веб-разработки, поэтому вы можете сосредоточиться на написании своего приложения, не изобретая велосипед. Это бесплатно и с открытым исходным кодом ».
Django предлагает большую коллекцию модулей, которые вы можете использовать в своих собственных проектах. В первую очередь, фреймворки существуют для того, чтобы сэкономить разработчикам уйму времени и головной боли, и Django не исключение.
Возможно, вам будет интересно узнать, что Django создавался с расчетом на фронтенд-разработчиков. «Язык шаблонов Django разработан так, чтобы его было удобно и легко освоить тем, кто привык работать с HTML, например дизайнерам и разработчикам интерфейсов. Но он также является гибким и расширяемым, что позволяет разработчикам расширять язык шаблонов по мере необходимости ».
Если вы собираетесь работать с Python, особенно для веб-приложений или веб-дизайна, вам следует вспомнить фреймворк Django.Это обязательно пригодится.
CherryPy — еще один фреймворк на основе Python, с которым приятно работать, хотя он разработан с учетом абсолютного минимализма. Это фреймворк, который вы захотите изучить после того, как у вас появится некоторый опыт работы с Python.
> Далее: чем Python отличается от других языков?
Рекомендуемый курс обучения Python
Курс: Python 3 для начинающих
Более 15 часов видеоконтента с пошаговыми инструкциями для начинающих.Узнайте, как создавать реальные приложения, и освоите основы.
Введение | Django для начинающих
Добро пожаловать в Django для начинающих , проектный подход к обучению веб-разработке с помощью веб-фреймворка Django. В этой книге вы создадите пять все более сложных веб-приложений, начиная с простого приложения Hello, World , заканчивая приложением Pages , приложением Message Board , приложением Blog с формами и учетными записями пользователей, и, наконец, приложение Newspaper , которое использует настраиваемую модель пользователя, интеграцию электронной почты, внешние ключи, авторизацию, разрешения и многое другое.К концу этой книги вы будете чувствовать себя уверенно, создавая свои собственные проекты Django с нуля, используя современные передовые практики.
Django — это бесплатный веб-фреймворк с открытым исходным кодом, написанный на языке программирования Python. «Веб-фреймворк» — это программное обеспечение, которое абстрагирует многие общие проблемы, связанные с созданием веб-сайта, такие как подключение к базе данных, обеспечение безопасности, учетные записи пользователей и т. Д. В наши дни большинство разработчиков полагаются на веб-фреймворки, а не пытаются создать веб-сайт с нуля.В частности, Django был впервые выпущен в 2005 году и с тех пор постоянно развивается. Сегодня это одна из самых популярных доступных веб-фреймворков, используемая крупнейшими веб-сайтами в мире — Instagram, Pinterest, Bitbucket, Disqus, но при этом достаточно гибкая, чтобы быть хорошим выбором для стартапов на ранних стадиях и создания прототипов личных проектов.
Эта книга регулярно обновляется и включает последние версии как Django, так и Python. Он также использует Pipenv для управления пакетами Python и виртуальными средами, хотя использование Pip также отлично работает.На протяжении всего времени мы будем использовать передовой опыт сообществ Django, Python и веб-разработчиков, включая тщательное тестирование.
Почему Django
Веб-фреймворк — это набор модульных инструментов, которые абстрагируют большую часть трудностей и повторений, присущих веб-разработке. Например, большинству веб-сайтов требуются одни и те же базовые функции: возможность подключаться к базе данных, устанавливать маршруты URL-адресов, отображать контент на странице, правильно обеспечивать безопасность и т. Д. Вместо того, чтобы воссоздавать все это с нуля, программисты на протяжении многих лет создавали веб-фреймворки на всех основных языках программирования: Django и Flask в Python, Rails в Ruby и Express в JavaScript среди многих, многих других.
Django унаследовал подход Python «с включенными батареями» и включает готовую поддержку для общих задач веб-разработки, в том числе:
- аутентификация пользователя
- тестирование
- моделей баз данных, форм, URL-маршрутов и шаблонов
- интерфейс администратора
- , повышение безопасности и производительности
- поддержка нескольких баз данных
Этот подход позволяет веб-разработчикам сосредоточиться на том, что делает веб-приложение уникальным, вместо того, чтобы каждый раз изобретать колесо для стандартных, безопасных функций веб-приложения.
Напротив, несколько популярных фреймворков, в первую очередь Flask в Python и Express в JavaScript, используют подход «микрофреймворк». Они предоставляют только минимум, необходимый для простой веб-страницы, и оставляют на усмотрение разработчика установку и настройку сторонних пакетов для репликации основных функций веб-сайта. Такой подход обеспечивает большую гибкость для разработчика, но также дает больше возможностей для ошибок.
По состоянию на 2019 год Django находится в активной разработке уже более 14 лет, что делает его опытным ветераном программного обеспечения.Миллионы программистов уже использовали Django для создания своих сайтов, что, несомненно, хорошо. Веб-разработка — это сложно. Нет смысла повторять один и тот же код и ошибки, когда большое сообщество блестящих разработчиков уже решило эти проблемы за нас.
В то же время Django находится в активной разработке и имеет годовой график выпуска. Сообщество Django постоянно добавляет новые функции и улучшения безопасности. И, что лучше всего, он написан на прекрасно читаемом, но все же мощном языке программирования Python.Короче говоря, если вы создаете веб-сайт с нуля, Django — отличный выбор.
Почему эта книга
Я написал эту книгу, потому что, хотя Django очень хорошо документирован, существует серьезная нехватка доступных для новичков руководств. Когда я впервые познакомился с Django много лет назад, мне было трудно даже пройти официальное руководство по опросам. Я помню, почему это было так тяжело, как я думал?
Обладая большим опытом, я теперь понимаю, что авторы документации Django столкнулись с трудным выбором: они могли подчеркнуть простоту использования Django или ее глубину, но не то и другое вместе.Они выбирают последнее, и как профессиональный разработчик я ценю этот выбор, но как новичок я нашел это таким… разочаровывающим! Моя цель в этой книге — заполнить пробелы и продемонстрировать, насколько удобен для начинающих Django.
Для работы с этой книгой вам не нужен опыт работы с Python или веб-разработки. Он намеренно написан так, чтобы даже новичок мог следовать и чувствовать магию написания собственных веб-приложений с нуля. Однако, если вы серьезно относитесь к карьере в области веб-разработки, вам в конечном итоге придется потратить время на правильное изучение Python, HTML и CSS.Список рекомендуемых ресурсов для дальнейшего изучения включен в Заключение.
Структура книги
Мы начнем с того, что рассмотрим, как правильно настроить локальную среду разработки в Глава 1 . В этой книге мы используем новейшие инструменты: самую последнюю версию Django (3.1), Python (3.8) и Pipenv для управления нашими виртуальными средами. Мы также представляем командную строку и обсуждаем, как работать с современным текстовым редактором.
В Глава 2 мы создаем наш первый проект, минимальное приложение Hello, World , которое демонстрирует, как создавать новые проекты Django.Поскольку внедрение передовых методов работы с программным обеспечением важно, мы также сохраним нашу работу с помощью Git и загрузим копию в удаленный репозиторий кода на GitHub.
В Глава 3 мы создаем, тестируем и развертываем приложение Pages , которое представляет шаблоны и представления на основе классов. Шаблоны — это то, как Django позволяет разработку DRY (Don’t Repeat Yourself) с помощью HTML и CSS, в то время как представления на основе классов довольно эффективны, но требуют минимального количества кода. Мы также добавляем наши первые тесты и развертываем в Heroku, у которого есть уровень бесплатного пользования, который мы будем использовать в этой книге.Использование поставщиков платформы как услуги, таких как Heroku, превращает разработку из болезненного и трудоемкого процесса во что-то, для чего требуется всего несколько щелчков мышью.
В главе 4 мы создаем наш первый проект на базе базы данных, приложение Message Board . Django предоставляет мощную ORM, которая позволяет нам писать сжатый Python для наших таблиц базы данных. Мы рассмотрим встроенное приложение администратора, которое обеспечивает графический способ взаимодействия с нашими данными и может даже использоваться в качестве системы управления контентом (CMS), аналогичной WordPress.Конечно, мы также пишем тесты для всего нашего кода, храним удаленную копию на GitHub и развертываем на Heroku.
В главах 5-7 мы готовы к нашему следующему проекту: надежному приложению Blog , которое реализует функциональность CRUD (создание-чтение-обновление-удаление). Используя универсальные представления на основе классов Django, нам нужно написать только небольшой объем реального кода для этого. Затем мы добавим формы и интегрируем встроенную систему аутентификации пользователей Django для функций регистрации, входа и выхода.
Оставшаяся часть книги, Главы 8–16 , посвящена созданию надежного сайта Newspaper , начиная с введения в пользовательские модели в Глава 8 , передовой практике Django, которая редко рассматривается в учебных пособиях. Глава 9 описывает аутентификацию пользователя, Глава 10 добавляет Bootstrap для стилизации, а Главы 11-12 реализуют сброс и изменение пароля по электронной почте. В Главах 13-15 мы добавляем статьи и комментарии к нашему проекту вместе с соответствующими разрешениями и авторизациями.Мы даже изучаем некоторые приемы настройки администратора для отображения растущих данных. И в Глава 16 , переменные среды представлены вместе с надлежащими методами развертывания.
Заключение предоставляет обзор основных концепций, представленных в книге, и список рекомендуемых ресурсов для дальнейшего изучения.
Хотя вы можете выбирать главы для чтения, структура книги является преднамеренной. Каждое приложение / глава представляет новую концепцию и подкрепляет прошлые учения.Я настоятельно рекомендую читать книгу по порядку, даже если вы хотите пропустить ее вперед. Последующие главы не охватывают предыдущий материал так же глубоко, как предыдущие главы.
К концу этой книги вы получите твердое представление о том, как работает Django, сможете самостоятельно создавать приложения и получить знания, необходимые для полноценного использования дополнительных ресурсов для изучения техник Django среднего и продвинутого уровней.
Книжный макет
В этой книге есть много примеров кода, которые обозначены следующим образом:
# Это код Python
print (Привет, мир)
Для краткости будем использовать точки ...
для обозначения существующего кода, который остается неизменным, например, в функции, которую мы обновляем.
def make_my_website:
...
print ("Все готово!")
Мы также будем часто использовать консоль командной строки (начиная с Главы 1: Начальная установка) для выполнения команд, которые принимают форму префикса $
в традиционном стиле Unix.
Результатом этой конкретной команды будет следующая строка:
Обычно мы объединяем команду и ее вывод.Перед командой всегда будет стоять $
, а на выходе — нет. Например, команда и результат выше будут представлены следующим образом:
$ echo "привет, мир"
Привет, мир
Официальный исходный код
Полный исходный код всех глав можно найти в официальном репозитории GitHub. Хотя лучше всего набирать весь код вручную, если вы все же застряли с примером кодирования или видите странную ошибку, обязательно сверьте свой код с официальным репозиторием.А если вы все еще застряли, попробуйте скопировать и вставить официальный исходный код. Распространенной ошибкой является небольшая разница между белыми интервалами, которую практически невозможно обнаружить невооруженным глазом.
Заключение
Django — отличный выбор для любого разработчика, который хочет создавать современные надежные веб-приложения с минимальным объемом кода. Он популярен, находится в стадии активной разработки и тщательно протестирован крупнейшими мировыми веб-сайтами. В следующей главе мы узнаем, как настроить любой компьютер для разработки Django.
Перейдите к главе 1: Первоначальная настройка.
.