Все что далее, - мой личный опыт изучения фреймворка Django. Может быть пригодится таким же новичкам в программировании как и я.
Что нужно знать (необходимый МИНИМУМ) относительно Python:
-Ввод и вывод данных
-Условия
-Вычисления
-Цикл for
-Строки
-Цикл while
-Списки
-Функции и рекурсия
-Словари
-Работа с модулями и функциями (создание, импортирование, вызов...)
-Основы регулярных выражений
-pip
В настоящее время, актуальной версией является Django 2.0. Но я советую начать изучение с версии 1.11. Почему именно так:
1. По Django 2.0 мало различных материалов на русском языке. Для 1.11 материалов достаточно.
2. Django 2.0 и 1.11 очень похожи, но в 2.0 сделали упрощённый синтаксис маршрутизации URL. Из-за этого могут возникнуть сложности на начальном этапе, если пытаться обучаться по материалам основанным на 1.11 версии.
3. Большинство готовых приложений и расширений до сих пор поддерживают только 1.11 версию и не поддерживают 2.
4. Расширенная поддержка версии 1.11LTS заканчивается в 2020 году, а 2.2LTS пока не видно.
Итак, расскажу как изучал я. Может быть кому-нибудь покажется полезной данная информация.
I. -НАЧАЛО ("копипастим" свой первый проект):
ЦЕЛИ:
-понять как работает фреймворк(установка, как создается проект, архитектура, как взаимодействуют его основные компоненты - urls, модели, шаблоны, views)
1. Проходим туториал на Django-girls.
Ссылка: tutorial.djangogirls.org/ru
Шаг за шагом копипастим и пытаемся понять что вообще происходит.
Чему научит:
-Основы основ.
-Основы работы в консоли Linux
-Установка Python
-Создание и работа в виртуальном окружении Python.
-Установка Django
-Основы основ Django (urls, модели, шаблоны, views)
Альтернативный вариант (более короткий):
Учебник официальная документация (docs.djangoproject.com/en/1.11 - раздел FirstSteps). Или перевод документации с портала djbook.ru
ссылка: djbook.ru/rel1.9/
Версия 1.9 а не 1.11, но в этом нет ничего страшного.
2. Цикл лекций "Web-технологии. Разработка на DJANGO" от Mail.ru
ссылка: https://www.youtube.com/playlist?list=PLrCZzMib1e9qZwq95WVmG...
Если не интересны основы-основ про web-разработку (уже знаете или задача быстро освоить Django), тогда начинаем смотреть с "9. Web-технологии. MVC фреймворки | Технострим" и дальше.
Чему научит:
-Основам web-разработки
-Архитектуре и принципам взаимодействия компонентов, основам Django
3. Книга "Django: практика создания Web-сайтов на Python" Владимир Александрович Дронов:
ссылка: сами кУпите или найдёте.
Читаем главы с 1 по 7. Главу 2 опционально можете пропустить, если знакомы с основами Python.
Выполняем примеры из книги на тестовом проекте - создаем модели, через шелл добавляем-изменяем-сортируем-фильтруем данные в модели, создаем urls привязки, пытаемся писать первый контроллер, смотрим как и что можно сделать в темплейтах.
Чему научит:
-Пониманию основ MVC
-Через примеры кода начнет приходить понимание, как все работает.
ИТОГ:
-Через копипасту проекта в общем виде начали понимать как все устроено и работает
-Через лекции MAIL.ru узнали как работают web-приложения, как выглядит архитектура типичного web-приложения(взаимодействие бекенда-фронтэнда, работа протоколов, общая архитектура), узнали место Django в этой архитектуре
-Через книгу более детально познакомились с паттерном проектирования MVC (что такое модель, контроллер, представление), через примеры кода начали понимать как это может работать.
II. ПРОДОЛЖЕНИЕ НАЧАЛА(продолжаем "копипастить"):
1. Ищем курс "iTBursa Python&Django". Продажу курса уже закрыли (скорее всего видимо потому, что курс попал в открытый доступ). В курсе есть основы Python и Django. Плюсом идут основы: html/css, bootstrap web, http, databases, linux, shell, git/github, nginx, deployment.
Продолжаем копипастить уже по этому курсу, но теперь самостоятельно выполняем "Контрольные задания"(или не выполняем). В принципе этот курс мог бы заменить все вышеперечисленное. Но так как каждый человек воспринимает информацию по разному, ИМХО лучше усвоится информация, полученная из разных (по типу и виду подачи информации) источников.
Дополнительно: курс itvdn-Django от Антона Мазуна
2. Продолжаем читать и перечитывать Дронова
3. Изучаем официальную документацию или перевод документации 1.9(djbook.ru)
ИТОГ:
-На этом этапе уже должно быть освоено достаточное количество материалов для написания своего собственного приложения.
II. КОНЦА НЕ ВИДНО(создаём свой собственный проект):
Собственно если все делали правильно, на этом этапе должны быть все необходимые знания для реализации собственного проекта. По сути, можно сосредоточиться только на Джанго, а фронтэнд слепить из кусков Bootstrap.
Теперь отправляемся в свободное плавание на просторы интернета. Теперь уже сами ищем статьи, видео, гайды, бестпрактис. Продолжаем читать Дронова и переходим на актуальную версию Django 2.x
Дополнительно можно начать читать:
-Django подробное руководство. Адриан Головатый. Джейкоб Каплан-Мосс. Книга очень старая (2010), многое изменилось, но общие принципы остались те же.
-Tango with Django. Многие советуют эту книгу.
Вот ещё парочка:
-Web Development with Django cookbook
-Django unleashed
Извиняюсь за возможные орфографические, и в особенности, за пунктуационные ошибки.
ЗЫ. Кстати, в комментах к моему предыдущему посту (Моя история: опыт изучения программирования) и по почте многие высказывали мысль о создании канала в Телеграмм по данной тематике. Такой канал я создал. Не знаю можно ли ссылку(или нет). Называется python_noobs(PythonNoobs). Сейчас там 12 человек(в основном пикабушники с предыдущего поста - всем кому рассылал свою подборку материалов). Создан чисто для новичков. На канале обмениваемся опытом изучение Python и смежных технологий, делимся ссылками на полезные материалы(статьи, видео, гайды, курсы...), собираем команду для совместных проектов и просто общаемся, чтобы не прокрастинировать :)