Django как освоить в кратчайшие сроки и с максимальной эффективностью. Почему Django? За столько лет практики я повидал (и применял) очень много самых разных фреймворков, и мне есть, с чем сравнить. И я могу со всей уверенностью сказать, что Django – это фреймворк №1 при создании сайтов (и не только сайтов, а вообще любых Web-приложений). Почему? А всё благодаря многочисленным преимуществам, основные из которых я хотел бы отметить.
Преимущества Django:
- Использование Python. При использовании Django нужно писать код на языке Python. А это крайне хорошо, учитывая, насколько в последние годы Python стал распространённым. Де-факто Python стал тем языком программирования, который уже знают все мало-мальски опытные программисты. Да чего там, с Python сейчас и начинают изучать программирование. И очень здорово, что первый язык программирования не только обучают этому навыку, но ещё и позволяет применять его в реальной практике.
- Очень высокая скорость разработки. Я собаку съел на создании сайтов без фреймворков. И это крайне сложный и долгий процесс, имеющий колоссальное количество подводных камней. Так вот Django упрощает и ускоряет процесс разработки в несколько раз.
- Лёгкая масштабируемость. Процесс масштабирования является сложнейшей задачей, которую крайне сложно решить даже опытному разработчику. Но в Django всё это уже идёт из коробки.
- Высокая безопасность. При разработке сайта с нуля велика вероятность допустить очень большое количество ошибок (даже опытному разработчику), часть из которых может быть очень критической. Как итог, это может привести ко взлому сайта. В Django же уже всё сделано так, что критические ошибки будет сложно допустить даже специально, не говоря уже о случайности. Поэтому для успешного создания защищённых проектов на Django не требуется высокая квалификация и большой опыт.
- Огромные возможности. Нет такой задачи у Web-приложений, которую нельзя было бы решить на Django. Интернет-магазин, поисковая система, почтовый сервис, блог, сайт-визитка, корпоративный сайт – всё это можно создать на Django, причём в разы быстрее и проще, чем если пытаться делать это с нуля.
- Отличная расширяемость. Есть много различных плагинов для Django, которые позволят легко и быстро подключить очередной сложный блок (например, приём платежей на сайте).
- Все необходимые инструменты уже идут из коробки. Поддержка самых разных СУБД (систем управления базами данных), панель администратора, которая очень легко и очень гибко настраивается, поддержка SEO, маршрутизация, реализованный паттерн MVT (Model-View-Template), регистрация/авторизация пользователей, полная инкапсуляция процесса отображения объектной модели на реляционную модель базы данных (это сложнейшая задача, сделанная за Вас) и многое-многое другое.
- Открытый исходный код. Это очень важный пункт, и любой специалист Вам это подтвердит.
- Бесплатность. Использование Django абсолютно бесплатно, в том числе, и в коммерческих целях.
- Очень большое сообщество. Когда я изучал Django, у меня возникало достаточно много вопросов. И очень давно мне так легко не удавалось найти очень быстро ответ на любой вопрос. Таким огромным сообществом мало, какой Web-фреймворк может похвастаться.
- Высокая востребованность у работодателей. Это следует из пунктов выше, но степень востребованности и уровень зарплат, мы обсудим ниже.
Содержание курса:
Раздел №1. Введение
1. Как наиболее эффективно проходить курс?
2. Как работает Django изнутри? Это очень важно понимать, поскольку такие базовые знания отличают дилетанта от профессионала.
3. Какое ПО потребуется, где его скачать и как установить?
4. Как установить и настроить Django?
Раздел №2. Подготовительные работы
1. Какой Интернет-магазин будет создан, а также увидите полный разбор требуемого функционала
2. Как подготовить вёрстку, чтобы потом её было легко подключить к Django?
3. Как создаётся проект?
4. Какие есть файлы у созданного проекта и как они используются?
5. Как правильно настроить проект?
Раздел №3. Создание модели
1. Что такое модель?
2. Как правильно создать модель?
3. Какие есть варианты отношений между моделями?
4. Как создаётся модель для разделов товаров?
5. Как создаётся модель для товаров?
6. Как создаётся модель для скидок?
7. Как создаётся модель для заказов?
8. Как создаётся модель для строк заказа?
Раздел №4. Создание Admin-панели
1. Как создать супер-пользователя?
2. Как добавить созданные модели в Admin-панель?
3. Как работать с Admin-панелью?
4. Как изменять вариант отображения данных модели в Admin-панели?
5. Как добавлять собственные фильтры?
6. Как работать с группами и пользователями?
Раздел №5. Вывод страниц сайта
1. Как создаётся основной шаблон сайта?
2. Какие вообще шаблоны нужно создавать?
3. Как работать с переменными в шаблоне?
4. Как работать с управляющими конструкциями в шаблоне?
5. Как правильно подключать статические файлы (например, стили и скрипты)?
6. Как выводится главная страница сайта?
7. Как выводятся множество второстепенных страниц сайта?
8. Как добавить механизм сортировки товаров?
9. Как добавить собственный фильтр для шаблона?
10. Как добавить страницу 404?
Раздел №6. Добавление функциональности
1. Как сделать поиск по сайту?
2. Как сделать навигацию по страницам?
3. Как работать с сессиями в Django?
4. Как написать очень полезный фильтр, который будет склонять слова (например, 1 товар, 2 товара, 5 товаров и так далее)?
5. Как работать с формами, используя механизм Django?
6. Как работать напрямую с POST и GET запросами?
7. Как делать проверку данных в форме?
8. Как выводить ошибки, допущенные пользователем при заполнении форм?
9. Как записывать полученные данные от пользователей в базу данных?
Раздел №7. Регистрация и авторизация пользователей
1. Как сделать регистрацию пользователей?
2. Как отправлять письма на e-mail, используя Django?
3. Как сделать авторизацию пользователей?
4. Как сделать выход?
5. Как добавить возможность восстановления пароля?
6. Как сделать уникальный контент для конкретного пользователя?
7. Как вывести список заказов авторизованного пользователя, чтобы он мог их просматривать?
8. Как добавить функционал отмены новых заказов?
Раздел №8. ЧПУ-ссылки
1. Какие необходимо добавить поля в модели?
2. Как правильно настроить маршрутизацию?
3. Как обрабатывать новые запросы?
Раздел №9. Размещение сайта в Интернете
1. Как размещается сайт на Django в Интернете?
2. Каков процесс покупки домена?
3. Каков процесс покупки хостинга?
4. Как перенести сайт на Django на хостинг?
5. Как повысить безопасность сайта на Django?
Бонус. Unit-тестирование сайта на Django
При разработке крупных проектов применяется экстремальное программирование, одним из ключевых инструментов которого является TDD (Test Driven Development) – разработка через тестирование. Это очень важный инструмент, который используется подавляющим большинством команд разработчиков. И в рамках этого Бонуса Вы научитесь его использовать непосредственно в Django. Вы увидите написание множества тестов для автоматизированного тестирования модели, отображения и форм. Узнаете, какие тесты нужны и как их правильно создавать.
- Вы уже будете знать, что из себя представляет Django, и у Вас будет уже всё готово для создания своих первых Web-приложений.
- У Вас уже будет чистый настроенный готовый к наращиванию функционала проект.
- Вы научитесь делать правильные модели для любого сайта. Это очень важный навык, которым необходимо владеть при создании практически любого Web-приложения.
- Вы сможете создавать самые разные Admin-панели для своих сайтов, которые будут максимально удобными для её пользователей.
- Вы сможете выводить уже самые разные страницы и своих сайтов.
- У вас уже будет полноценный Интернет-магазин, где имеются товары, где есть возможность их искать, добавлять товары в корзину, оформлять заказ, обрабатывать скидочные купоны и много чего ещё по мелочи. Но поскольку моя задача показать Вам максимум возможностей Django, на этом функционале мы не остановимся.
- Вы сможете создавать не только регистрацию и авторизацию пользователей, но и делать любой функционал для авторизованных пользователей.
- У вас уже будет полноценный сайт со всеми страницами, со всем необходимым функционалом и даже оптимизированным под поисковые системы.
- Вы уже будете знать не только, как размещается сайт на Django в Интернете, но и как обеспечить его безопасность.