Курс:
Веб разработка на Python

  • Научитесь создавать с нуля реальные веб приложения на Python с использованием самого популярного и самого мощного фреймворка Django
  • Освоите основы Linux и научитесь настраивать виртуальный выделенный сервер
Старт:
Сразу
Длительность:
3 месяца
Уровень:
Средний

Что нужно для курса

Базовые знания Python

Если Вы умеете программировать на Python на начальном уровне, то этот курс точно для Вас!

Базовые знания HTML, CSS, JS

Если Вы знаете, что такое HTML теги и как текст сделать красным - этого будет достаточно

Чему научитесь

Создавать веб-приложения на Django и работать с Linux

Освоите инструменты

  • Git

    Git

  • GitHub

    GitHub

  • Django

    Django

  • Linux

    Linux

  • SQL

    SQL

  • Nginx

    Nginx

  • API

    API

  • Ubuntu

    Ubuntu

  • PostgreSQL

    PostgreSQL

  • Sentry

    Sentry

  • PyCharm

    PyCharm

Git

Git – система контроля версий. Это программа, которая ставится на компьютер и следит за тем, что поменялось в файле. Можно сравнивать изменения, откатываться назад или найти того, кто накосячил.

GitHub

GitHub – облако, в которое выкладываются исходные коды IT проектов. Используется для командной разработки, имеет множество дополнительного, навороченного функционала.

Django

Django – самый мощный и самый популярный веб-фреймворк на Python для создания веб приложений. Абсолютно бесплатный. Главный спонсор Django – компания JetBrains (разработчики PyCharm).

Linux

Linux – семейство операционных систем. Linux – это не операционная система, это ядро, на котором созданы различные ОС, например Ubuntu. Такие системы отлично подходят для использования на серверах.

SQL

SQL (Structured Query Language) – язык программирования, на котором пишутся запросы к реляционным базам данных.

Nginx

Nginx (инжин-икс) – один из лучших по производительности веб-серверов. Используется на Unix система. Необходим для работы сайта. Сейчас на nginx работает 31% всех сайтов мира.

API

API (Application Programming Interface - программный интерфейс приложения) – конструкции программирования, с помощью которых одно приложение общается с другим. Например, facebook может написать функцию, которая возвращает друзей пользователя. На Python эту функцию можно вызвать.

Ubuntu

Ubuntu – операционная система на базе ядра Linux. Система Ubuntu отлично подходит для использования на выделенном сервере в сочетании с Nginx и PostgreSQL для развертывания приложения на Python.

PostgreSQL

PostgreSQL – реляционная система управления базами данных (СУБД). Используется на крупных проектах. Как правило, ставится на Unix системы, такие как Ubuntu.

Sentry

Sentry – сервис для удаленного мониторинга ошибок веб-приложений. Если в приложении возникает ошибка, то Sentry покажет строчку кода, на которой она возникла, а также выдаст множество дополнительной информации.

PyCharm

PyCharm – интегрированная среда разработки (IDE) для проектов на Python. Эта IDE создана и заточена специально для Python. Имеет множество функционала, позволяющего облегчить разработку и сократить количество ошибок.

Будете уметь

  • Работать с фреймворком Django
  • Разрабатывать backend, frontend и связывать их
  • Создавать API на Django
  • Работать с реляционными базами данных
  • Писать запросы на языке SQL
  • Работать с Linux, создавать и настраивать VPS - виртуальный выделенный сервер
  • Работать с базой данных PostgreSQL
  • Подключать и конфигурировать веб-сервер Nginx
  • Настраивать Supervisor на Linux
  • Использовать системы расширенного анализа логов

Получите вечный доступ к курсу

Доступ к курсу остается навсегда. Вы сможете пользоваться материалами курса как шпаргалкой.

Программа курса

Старт курса:
Сразу
Длительность курса:
3 месяца

Django - основные понятия и создание среды разработки

  • Фреймворк Django - основные понятия
  • Установка и настройка PyCharm
  • Работа с командной строкой
  • Создание виртуального окружения
  • Установка Django и создание первого проекта
  • Настройки проекта settings.py
  • Создание первого приложения, базы данных, первые миграции
  • Модели в Django
  • Практика: первая практика по Django
  • Админпанель Django, создание суперпользователя
  • Практика: модели и типы полей

Система контроля версий Git

  • Что такое git
  • Что такое репозиторий
  • Командная разработка с git
  • Установка git
  • Подготовка к работе с git и настройка git config
  • Создание локального репозитория
  • Индексация изменений
  • Commit - создание версий файлов
  • Удаление файлов из локального репозитория
  • Удаление файла из отслеживания

Сервис GitHub

  • Регистрация в GitHub
  • Подключение к GitHub - SSH ключи
  • Подключение к удаленному репозиторию на GitHub
  • Git Push - отправка изменений в удаленный репозиторий
  • Перенос структуры проекта на GitHub и удаление файлов
  • Ветки
  • Pull request
  • Git Pull и клонирование репозиториев
  • Git merge - объединение изменений
  • Настройка исключений - .gitignore
  • Удаление репозиториев
  • Создание GitHub-репозитория для проекта Django
  • Сервис Heroku - публикация сайта в интернете

Разработка архитектуры базы данных

  • Реляционные базы данных
  • Типы и свойства полей базы данных
  • Разработка архитектуры базы данных - отношения между моделями в Django
  • Практика: отношения между моделями
  • Фикстуры
  • Введение в Django ORM
  • Практика: Django ORM
  • Выполнение запросов к базе данных
  • Практика: Django ORM - фильтры и сортировка
  • Запросы к связанным моделям - RelatedManager
  • Практика: Django ORM - RelatedManager
  • Создание и редактирование записей в базе данных
  • Создание правильной структуры проекта Django (и поле slug)
  • Практика: отладка в PyCharm и метаданные моделей
  • Расширенные настройки административной панели Django

Создание страниц сайта

  • Создание представлений - view
  • Создание URL адресов - контроллеры
  • Практика: представления и контроллеры
  • Шаблоны Django для создания HTML страниц
  • Создание страницы списка объектов
  • Практика: рендеринг шаблонов
  • Язык шаблонов Django
  • Шаблонные фильтры
  • Практика: язык шаблонов Django
  • Создание собственных фильтров
  • Создание детальных страниц сайта
  • Наследование шаблонов и настройки шаблонизатора
  • Обработка статических файлов (static)
  • Обработка медиа файлов (media)
  • Создание дизайна сайта
  • Практика: API на Django

Добавление и редактирование контента

  • DetailView - базовый класс страницы объекта
  • ListView - базовый класс для списка объектов
  • Формы в Django и защита сайта от атак
  • HTML оформление полей и ручная отрисовка формы
  • Валидация форм
  • HTML оформление ошибок формы
  • CreateView - базовый класс создания объектов и модельные формы
  • Базовые классы редактирования и удаления объектов
  • Формсеты
  • Миксины
  • Инициализация значений в форме

Авторизация и аутентификация пользователей

  • Пользовательские сессии и cookie
  • Создание системы аутентификации
  • Сигналы в Django
  • Создание главной страницы сайта
  • Создание личного кабинета пользователя
  • Реализация сброса и восстановления пароля
  • Подключение почты - отправка писем на email
  • Подключение регистрации через социальные сети

Язык запросов SQL

  • Введение в SQL
  • Выбор данных - SELECT
  • Практика: основы SQL
  • Практика: условия и сортировка
  • Практика: агрегатные функции
  • Соединения (JOIN)
  • Практика: соединения
  • Группировки GROUP BY
  • Практика: группировки
  • Вложенные запросы

Оптимизация и ускорение сайта

  • Django Debug Toolbar
  • Оптимизация запросов - select_related
  • Практика: select_related
  • Аннотации, агрегации, группировки и Q-фильтры
  • Практика: annotate
  • Метод prefetch_related и объект Prefetch
  • Практика: prefetch_related
  • Вычисляемые поля и условия (Case, When, F)
  • Отзывы и аренда машин
  • Добавление фильтров
  • Доработка главной страницы
  • Принципы организации Django проекта

Кэширование и многопоточность

  • Кэширование и мемоизация
  • Кэширование в Django
  • Redis - сервер для кэширования
  • Теория асинхронности
  • Threading - многопоточность
  • CPU/IO-bound задачи
  • Мультипроцессорность

Логирование проекта

  • Логирование
  • Логирование в Python
  • Конфигурирование логгеров
  • Использование нескольких обработчиков
  • Логирование в Django
  • Подключение sentry.io

Основы Linux и деплой на облачном VPS

  • Dev, preprod и prod версии проекта
  • Создание VPS
  • Подключение к VM через SSH
  • Основы Linux
  • Трехзвенная архитектура
  • Deploy Django-проекта на VPS. Часть 1
  • Deploy Django-проекта на VPS. Часть 2

Дипломный проект

  • Сервис бронирования отелей psBooking

Получить полную программу или консультацию

или

Нажимая кнопку «Получить программу» Вы даете свое согласие на обработку персональных данных.

Заполните телефон - мы перезвоним. Заполните email - вышлем полную программу.

separator

Как проходит обучение?

На протяжении всего обучения Вас консультирует опытный преподаватель

Уроки и практика

В удобное для Вас время Вы проходите уроки на нашей собственной платформе, решаете тесты и практические задачи

Консультации с преподавателем

Общаетесь с преподавателем в slack, получаете подробные консультации, можете скидывать код на ревью

Домашние задания

Выполняете домашние задания - их лично проверяет Ваш преподаватель и дает обратную связь с разбором ошибок

Дипломный проект

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

Дипломные проекты курса

Сервис бронирования отелей PS-Booking

Создадите полноценный сервис бронирования отелей. Опубликуете проект на VPS сервере Linux, подключите базу данных PostgreSQL, настроите веб сервер Nginx

Реализуете функционал:

  • Авторизация и аутентификация пользователей
  • Поиск и бронирование свободных номеров
  • Система отзывов
  • Админпанель управления сайтом

Афиша - агрегатор мероприятий

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

Чему научитесь:

  • Создавать пользователей и управлять правами
  • Настраивать регистрацию через соц.сети
  • Создавать API
  • Разворачивать проект на Linux сервере

Служба такси

Служба заказа такси из любой точки мира. Проект, который Вы создаете по мере прохождения курса.

Чему научитесь:

  • Лучшим практикам создания приложений на Django
  • Связывать frontend и backend
  • Подключать базу данных
  • Писать SQL запросы
  • Масштабировать и ускорять приложение

Преподаватель курса

teachers_header_pic

Денис Гараев

Руководитель крупных IT проектов в РЖД

Программирование – это многогранная наука, открывающая перед Вами широчайший спектр возможностей. Мне повезло быть причастным к миру IT, но самое важное и ценное для меня – это иметь возможность делиться своими знаниями.

Мои любимые технологии – Python для backend, Vue.js для frontend.

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

denis_garaev

Запишитесь на курс
со скидкой 40%

Скидка действительна
до

Полная стоимость курса

18 000 ₽

30 000 ₽ без скидки

Отправляя заявку Вы даете свое согласие на обработку персональных данных.

Скидка действительна
до

Полная стоимость курса

18 000 ₽

30 000 ₽ без скидки

Если у Вас есть вопросы, звоните +7 (499) 899-16-74

Ответы на вопросы

Можно ли общаться с преподавателем?

Конечно! Вы сможете общаться напрямую с преподавателем через личные сообщения в мессенджере slack. Вопросы можно задавать в любое время и сколько угодно. Это как whatsApp или telegram только удобнее.

Цена указана за месяц?

Нет. Указана полная стоимость за весь курс.

Где кодить?

В курсе мы кодим в PyCharm. Если вы привыкли к другому редактору - не проблема, можете кодить в любом удобном для вас редакторе.

Какой компьютер нужен?

Для комфортного обучения будет достаточно любого ноута или стационарного компьютера с доступом в интернет. Диагонали 13 дюймов вполне хватит. Python не требует много ресурсов - 2Gb оперативки подойдет.

Что если не буду успевать?

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

Сколько времени тратить на обучение?

В среднем наши студенты тратят 3-5 часов в неделю. Если сможете уделять 1.5-2 часа в день и заниматься 3-4 раза в неделю, то вообще хорошо. Мы подстраиваем обучение под Ваше свободное время.

Я ничего не знаю. Можно ли начинать учиться?

Если никогда раньше не программировали, то будет сложновато. Курс рассчитан на тех, кто уже имеет начальные знания Python и HTML.