Основы веб-разработки

всестороннее изучение устройства и принципа работы современных web приложений и сети WWW в целом, а также получение практических навыков web разработки. Акцент в курсе сделан на разработку серверного ПО, т.е. backend разработку.
17 занятий, 68 ак.часов
Хочу учиться
Что дает курс

По завершению курса студенты научатся разрабатывать web приложений на языке python, научаться использовать MVC фреймворки, получат опыт верстки HTML страниц с использованием CSS фреймворка Bootstrap. Помимо разработки студенты научатся устанавливать и настраивать web-сервера, проектировать модель данных с помощью ORM, получат навык отладки web приложений на всех этапах исполнения.

Какие знания нужны

Как проходят занятия

Курс web-технологии посвящен разработке web-приложений среднего масшатаба, иначе говоря сайтов. Курс является в большой мере обзорным и знакомит будущих web-разработчиков с широким спектром технологий и общими принципами работы web-приложений. По сути курс нужен для того что бы “погрузить” студентов в тематику web разработки и позволить в дальнейшем сконцентрироваться на конкретных технологиях, не теряя из вида общую архитектуру.

Как поступить?

Регистрация
Заполни заявку и регистрируйся на курс до 25-го февраля включительно
Тестирование
Ссылка на тест придет на почту до 18:00 26-го февраля. Пройди тест до 18:00 28-го февраля
Зачисление
Письмо о зачислении придет на почту каждому студенту 3-го марта включительно
Начало обучения
Обучение начнется на неделе с 4-го марта по расписанию

Вопросы по обучению

Отборочный тест

 

Требования к поступающим

Поступить могут студенты и аспиранты всех курсов и факультетов МФТИ.

Оборудование для обучения

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

Нагрузка в неделю

4 ак. часа в неделю без учета времени на выполнение домашнего задания.

Место проведения

Онлайн.

Стоимость обучения

Обучение бесплатно.

Моего вопроса тут нет :(

Другие вопросы можно посмотреть здесь.

Программа

Лекция № 1. Введение + сетевые протоколы

История развития интернета.
Направления развития современного ПО и web-приложений.
Направления деятельности и развития: разработка, инфраструктура, архитектура.
Адресация в интернете, URL, домены.
HTML страницы, гиперссылки, формы.
Протокол TCP, соединения и надежная доставка данных.
DNS - домены, зоны и делегирование.
Протокол HTTP - управление передачей документов.
Формат HTTP пакетов.
Методы и заголовки HTTP запросов, коды ответа сервера.
Содержимое тела запросов и ответов, x-www-form-urlencoded.
Кеширование в протоколе HTTP/1.0

Лекция № 2. Web серверы

Общая схема работы веб сервера: сокеты, запросы, файлы, логи.
Использование сервера для отдачи файлов.
Основы конфигурации сервера: server (virtual host), location, document root
. Понятие о MIME и Content-Type.
Модели обработки запросов.
Сравнение производительности web серверов.
Web сервер как сервер приложений.
Интерфейсы запуска программ: CGI, WSGI, mod_*, FastCGI.
Протокол CGI: передача GET и POST параметров. Переменные окружения.
Протокол WSGI: приложения и middleware. Как запустить WSGI.
Утилиты Werkzeug, Paste.
Frontend и backend серверы.

Семинар № 1. Подготовка инфраструктуры

Структура проекта. Создание нового django-приложения.
Настройка сервера nginx для отдачи статических файлов.
Настройка gunicorn для запуска WSGI скриптов.
Настройка nginx для проксирования запросов.
Настройка кеширования и балансировки.
Исследование производительност полученных конфигураций.
Создание простейшего django приложения

Лекция № 3. Верстка и web-mastering

Языки разметки HTML и XHTML. HTML5.
Определение типа содержимого. Content-Type и DOCTYPE.
Основы вёрстки, базовые HTML тэги и атрибуты.
Различные типы элементов. Таблицы и списки.
Язык описания стилей CSS. Способы подключения.
CSS Селекторы. Приоритеты и каскадирование стилей.
Позиционирование элементов. Box model.
Css фреймоврк Bootstrap. “Фиксированая” и “резиновая” верстка.

Семинар № 2. Верстка статического сайта

Создание layout а сайта. Верстка форм и списков.
Использование Twitter Bootstrap.
Готовая сетка и формы в Bootstrap.
Позиционирование и задание размеров с помощью CSS.
Использование jQuery для AJAX запросов.
Использование FireBug/WebInspector для упрощения разработки.

Лекция № 4. Серверная разработка

Типичные задачи серверной разработки.
Типичная структура Web приложения, MVC.
Понятие о фреймворках. Реализация MVC в Django.
Структура Django проекта. Приложения и скрипт запуска.
Маршрутизация URL в Django. urls.py
Захват и передача параметров из URL во view.
Разделение urls.py на несколько файлов.
Контроллеры в Django. views.py
Обработка входных данных. GET и POST запросы.
Объекты request и response.
Получение и установка HTTP заголовков.
Перехват ошибок. Ошибка 404.
Визуализация данных с помощью представления.
Генерация HTML страницы с помощью шаблонизатора. Django Templates.
Особенности шаблонизатора: наследование, подшаблоны, вызов методов объектов, фильтры.
Типичная структура страницы.

Семинар № 3. Django (отображение контента)

Настройка маршрутизации URL.
Обработка запросов с помощью views.
Использование шаблонизатора Django.
Ошибка 404.

Лекция № 5. Работа с базой. Django ORM

Представление о СУБД.
Основные операции SQL: insert, update, delete, select, join
Работа с базами данных в python: Driver, Connection, Cursor.
Защита от SQL инъекций. Использование placeholder-ов.
Синтаксис классов в python.
Модели и поля. Типы данных в SQL и ORM.
Связи между таблицами. Внешние ключи.
Типичные операции в ORM: загрузка объекта, выборка нескольких, обновление объекта, получение связанных объектов.
QuerySets и ObjectManagers.
Создание базы. Изменение базы. Миграции. South.

Семинар № 4. Работа с базами данных

Создание моделей.
Первичные и внешние ключи.
Создание модели пользователя.
Выборка данных из базы. QuerySet.
Основные методы моделей.
Синхронизация моделей и СУБД. Миграции.
Наполнение базы данных.

Лекция № 6. Серверная разработка

Обработка входных данных: валидация, очистка, приведение типа, эскейпинг.
Использование Django Forms для обработки входных данных.
Изменение данных с помощью Django Views.
Использование перенаправлений.
Загрузка файлов и изображений.
AJAX запросы.
Генерация ответа в JSON формате.
Хранение данных на клиенте. Cookie и сессии.
Получение и установка Cookie.
Использование сессий.
Авторизация пользователей.
Получение текущего пользователя.
Стандартные формы и views login / logout.

Семинар № 5. Django (изменение контента)

Django Views для добавления/изменения данных.
Формы в HTML и Django Forms. BestPractice реализации форм.
Отправка форм с перезагрузкой страницы. HTTP Redirects.
Отправка форм без перезагрузки страницы.
Обработка AJAX запросов.

Лекция № 7. Дополнительные темы. В глубь Django

Конфигурация Django.
Скрипт управления django приложением.
Management commands
Middleware. Стандартные middleware. Защита от csrf.
Декораторы в python. Стандартные декораторы для view.
Class Based Views. Отображение списка объектов.
Pagination. Отображение Paginator в шаблоне.
Расширение фильтров и тэгов в шаблонизаторе.
Inclusion tags.
Стандартные приложения: административная консоль, sites, content types.
Оптимизация производительности: кеширование, денормализация.

Семинар № 6. Доработка проекта

Практика полностью посвещена ответам на вопросы студентов.

Лекция № 8. Современные технологии: Comet, NoSQL, Очереди, Поиск

Персистентные соединения: WebSockets, LongPolling, ServerPush, Comet.
Периодический запуск программ. Cron.
Очереди сообщений и сервера задач. ActiveMQ, Celery.
Полнотекстовый поиск. Использование Sphinx.
Sphinx как engine для MySQL. Sphinx как отдельный сервер. Sphinx в Django.
Особенности хранения данных в web-приложениях.
Назначение NoSQL, отличия от реляционных баз.
Обзор наиболее распространенных: Redis, Memcached.

Семинар № 7. Дополнительные темы

Полнотекстовый поиск. Sphinx.
Кеширование в Memcached.
Использование Management команд в Django.
Периодический запуск программ.

Экзамен № 1. Защита семестрового проекта

Защита семестрового проекта

Пересдача № 1. Пересдача

Пересдача