fbpx

Каталог статей

Каталог статей для размещения статей информационного характера

Как выучить

Как изучать django

Введение

Добро пожаловать в книгу “Django для начинающих”, основанную на проектном подходе к изучению веб-разработки с использованием веб-фреймворка Django. В этой книге вы создадите пять постепенно усложняющихся веб-приложений, начиная с простого приложения Hello, World, переходя к приложению Pages, приложению Message Board, приложению Blog с формами и учетными записями пользователей, и, наконец, приложению Newspaper, которое использует пользовательскую модель пользователя, интеграцию с электронной почтой, внешние ключи, авторизацию, разрешения и многое другое. К концу этой книги вы должны чувствовать себя уверенно, создавая свои собственные проекты Django с нуля с использованием современных лучших практик.

Django – это бесплатный веб-фреймворк с открытым исходным кодом, написанный на языке программирования Python. Впервые выпущенный в 2005 году, Django с тех пор постоянно развивается, и сегодня на нем работают многие крупнейшие сайты в мире, включая Instagram, Pinterest, Bitbucket и Disqus. В то же время он достаточно гибок, чтобы быть популярным выбором для стартапов на ранних стадиях и побочных проектов.

Почему Django

Веб-фреймворк” – это набор инструментов, которые абстрагируют большую часть трудностей и повторений, присущих веб-разработке. Например, большинству веб-сайтов требуется одна и та же базовая функциональность: возможность подключения к базе данных, установка маршрутов URL, отображение содержимого на странице, надлежащая обработка безопасности и так далее. Вместо того чтобы создавать все это с нуля, программисты с годами создали веб-фреймворки на всех основных языках программирования: Django на Python, Rails на Ruby, Laravel на PHP и многие, многие другие.

Django унаследовал подход Python “battery-included” и включает в себя “из коробки” поддержку общих задач веб-разработки, включая:

  • аутентификация пользователей
  • тестирование
  • модели баз данных, формы, маршруты URL и шаблоны
  • интерфейс администратора
  • повышение безопасности и производительности
  • поддержка нескольких баз данных

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

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

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

Кроме того, сообщество Django постоянно вносит изменения

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

С большим опытом я понимаю, что авторы документации по Django стояли перед сложным выбором: они могли подчеркнуть простоту использования Django или его глубину, но не то и другое. Они выбрали последнее, и как профессиональный разработчик я ценю этот выбор, но как новичок я нашел его таким… разочаровывающим! Моя цель в этой книге – заполнить пробелы и показать, насколько Django действительно может быть удобным для новичков.

Предварительные условия

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

Вам не нужен предыдущий опыт работы с Python или веб-разработки, чтобы пройти эту книгу. Она специально написана так, чтобы даже абсолютный новичок мог следовать за ней и почувствовать магию написания собственных веб-приложений с нуля. Однако если вы всерьез намерены сделать карьеру в веб-разработке, вам в конечном итоге придется потратить время на изучение Python, HTML и CSS. Список рекомендуемых ресурсов для дальнейшего изучения включен в Заключение.

Структура книги

Книга начинается с демонстрации того, как настроить локальную среду разработки для Windows и macOS в главе 1. Подробно рассматривается командная строка, Git, текстовые редакторы, а также правильная установка Python и Django.

В главе 2 мы создаем наш первый проект, минимальное приложение Hello, World, которое демонстрирует, как создавать новые проекты Django. Поскольку создание хорошего программного обеспечения является важной практикой, мы также сохраним нашу работу с помощью Git и загрузим копию в удаленный репозиторий кода на GitHub.

В главе 3 мы создадим, протестируем и развернем приложение Pages, которое познакомит нас с шаблонами и представлениями на основе классов. Шаблоны – это то, как Django позволяет DRY (Don’t Repeat Yourself) разработку с HTML и CSS, в то время как представления на основе классов являются довольно мощными, но требуют минимального количества кода. Мы также добавляем наши первые тесты и развертываемся на бесплатном уровне Heroku. Использование платформы как услуги, такой как Heroku, превращает развертывание из мучительного и трудоемкого процесса в то, что занимает всего несколько кликов мыши.

В главе 4 мы создаем наш первый проект на основе базы данных, который представляет собой приложение для доски объявлений. Django предоставляет мощный ORM (Object-Relational-Mapper), который преобразует наш код на Python в необходимый SQL для нескольких различных бэкендов. Мы изучим встроенное приложение администратора, которое предоставляет графический способ взаимодействия с нашими данными и даже может быть использовано как CMS (система управления контентом), подобная WordPress. Конечно, мы также напишем тесты для всего нашего кода, сохраним удаленную копию на GitHub и развернем на Heroku.

В главах 5-7 мы готовы к созданию приложения для блога, реализующего функциональность CRUD (Create-Read-Update-Delete). Благодаря использованию общих представлений Django, основанных на классах, нам придется написать лишь небольшое количество фактического кода для этого. Затем мы добавим формы и интегрируем встроенную в Django систему аутентификации пользователей для функций регистрации, входа и выхода.

Оставшаяся часть книги, главы 8-16, посвящена созданию надежного сайта Newspaper, начиная с введения пользовательских моделей пользователей в главе 8 – передовой практики Django, которая редко рассматривается в учебниках. В главе 9 рассматривается аутентификация пользователей, в главе 10 добавляется Bootstrap для создания стиля, а в главах 11-12 реализуется сброс и изменение пароля по электронной почте. В главах 13-15 мы добавляем статьи и комментарии вместе с надлежащими разрешениями и авторизациями. Мы даже научимся некоторым приемам настройки администратора для отображения наших растущих данных.

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

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

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

Макет книги

В этой книге много примеров кода, которые обозначены следующим образом:

Для краткости мы будем использовать три точки, . для обозначения существующего кода, который остается неизменным в более длинном примере кода. Например, в приведенной ниже функции предыдущее содержание не изменено, но добавлен оператор print(). В этих случаях также будет комментарий # new , указывающий, где был добавлен новый код.

Советы по устранению затруднений

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

Хорошая новость заключается в том, что какая бы ошибка у вас ни возникла, скорее всего, вы не первый! Если скопировать и вставить вашу ошибку в поисковую систему, например, Google или DuckDuckGo, то, как правило, появится что-то из StackOverflow или личного блога, где подробно описывается точно такая же проблема. На самом деле, опытные программисты часто шутят, что единственное, что отличает их от молодых программистов – это способность быстрее найти ответ в Google. В этом есть доля правды.

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

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

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

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

Сообщество

Успех Django в такой же степени обязан своему сообществу, как и технологическим достижениям самого фреймворка. “Приходите ради фреймворка, оставайтесь ради сообщества” – это распространенная поговорка среди разработчиков Django. Это относится и к техническому развитию Django, которое происходит онлайн через django-developers, некоммерческий фонд Django Software Foundation, который курирует сам Django, ежегодные конференции DjangoCon и локальные встречи, где разработчики собираются, чтобы поделиться знаниями и идеями.

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

Заключение

В следующей главе вы узнаете, как правильно настроить свой компьютер и создать свой первый проект Django. Давайте начнем!

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *