+7 (812) 703-02-02 info@hse.spbstu.ru

DEV-PY110. Основы разработки WEB приложений на языке Python

Длительность дисциплины: 44 ак.ч.


Аннотация

Целью изучения курса «DEV-PY110. Основы разработки WEB приложений на языке Python» является углубленное изучение синтаксиса языка Python и основ разработки серверных приложений с использованием фреймворка Django, а также приобретение практических навыков разработки серверной части Web-сайтов на языке Python с использованием фреймворка Django.

Знания и умения, полученные в результате изучения

В результате освоения программы обучающийся должен уметь:
• применять систему контроля версий git;
• создавать новые ветки и сливать их в другие ветки;
• создавать виртуальное окружение и управлять пакетами с помощью pip;
• выполнять GET запросы;
• составлять простейшие HTML файлы;
• устанавливать и настраивать фреймворк Django;
• инициализировать Django проект и добавлять приложения в него;
• создавать шаблоны URL и устанавливать привязку их к функциям-обработчикам;
• составлять и применять регулярные выражения;
• составлять шаблоны URL с применением преобразователей путей;
• передавать параметры в GET запросах;
• работать с шаблонами и наследовать их;
• применять теги в шаблонах;
• подключать статические файлы;
• писать декораторы и применять их.

В результате освоения программы обучающийся должен знать:
• понятие системы контроля версий;
• отличие распределенных и централизованных систем контроля версий;
• понятие виртуального окружения;
• синтаксис регулярных выражений;
• понятие протокола HTTP и виды HTTP методов;
• структуру URL;
• понятие языка разметки HTML;
• структуру HTML файла и HTML теги;
• понятие фреймворка;
• понятие Django проекта и приложения;
• архитектурный шаблон Model-View-Template (MVT);
• обработчики и преобразователи путей;
• Django шаблоны и их наследование;
• понятие декоратора и фабрики-декораторов.

В результате освоения программы обучающийся должен приобрести практический опыт:
• разработки серверной части Web-сайтов на языке Python с использованием фреймворка Django;
• работы с виртуальным окружением;
• работы с системами контроля версий.

Содержание дисциплины

Тема 1. Виртуальное окружение и пакеты.
1.1    Виртуальное окружение    
    Что такое виртуальное окружение.
    Какие проблемы решает.
    Создание виртуального окружения.
    Управление пакетами с помощью pip
1.2    Система управления виртуальными окружением venv   
    Обзор системы управления виртуальными пространствами venv
Практические занятия   
1.    Создание виртуального окружения
2.    Переключение между виртуальными окружениями
3.    Установка и удаление пакетов
4.    Создание списков зависимостей

Тема 2. Основы git
2.1    Основы контроля версиями.
    Работа с локальным репозиторием.   
    Введение в управление версиями.
    Установка и настройка Git.
    Создание нового репозитория.
    Получение информации о состоянии репозитория.
    Подготовка файлов.
    Добавление файлов.
2.2    Работа с удаленным репозиторием.
    Ветвление.   
    Удаленные репозитории.
    Подключение к удаленному репозиторию.
    Отправка изменений на сервер.
    Клонирование репозитория.
    Запрос изменений с сервера.
    Создание новой ветки.
    Переключение между ветками.
    Слияние веток.
    Отслеживание изменений, сделанных в коммитах.
    Возвращение файла к предыдущему состоянию.
    Исправление коммита.
    Разрешение конфликтов при слиянии.
    Настройка gitignore
Практические занятия   
1.    Установка и настройка Git.
2.    Создание нового репозитория
3.    Подключение к удаленному репозиторию.
4.    Отправка изменений на сервер

Тема 3. Протокол HTTP и язык разметки HTML
3.1    Основы протокола HTTP   
    Структура HTTP-запроса и HTTP-ответа.
    HTTP методы и их назначение.
    Состояния ответов HTTP (коды состояния HTTP).
    Механизма запросов и ответов HTTP (модель клиент-сервер).
    Структура URL.
    Использование Developer tools в браузере, как инструмент отладки.
3.2    Язык разметки HTML    Структура документа HTML.
    Основные теги HTML (<html>, <head>, <body>, <h1>, <p>, <img>, <br>, <img>).
    Парные и одиночные теги.
    Атрибуты тегов.
Практические занятия   
1.    Создание простейших HTML файлов.
2.    Выполнение запросов с помощью curl
3.    Выполнение запросов с помощью модуля requests

Тема 4. Введение в Django
4.1    Введение в Django   
    Понятие фреймворка.
    Фреймворк Django: его преимущества и недостатки.
    Запуск сервера.
    Структура проекта.
    Создание приложений.
    Идеи MVT подхода: разделение логики, шаблонов и данных.
4.2    Маршрутизация. Запросы и ответы сервера   
    Система привязки интернет-адресов в фреймворке.
    Как Django обрабатывает запрос.
    Файл привязки URL.
    Создание шаблонов url и привязка их к функциям-обработчикам.
Практические занятия   
1.    Установка и настройка Django.
2.    Создание проекта и приложений
3.    Создание шаблонов url
4.    Привязка шаблонов url к функциям-обработчикам

Тема 5. Регулярные выражения
5.1 Регулярные выражения   
    Регулярные выражения и основы синтаксического разбора.
    Понятие о регулярном выражении.
    Синтаксис регулярных выражений.
    Составление и применение регулярных выражений
5.2    Регулярные выражения в python   
    Особенности использования регулярных выражений в python.
    Компилирование регулярных выражений.
Самостоятельная работа   
1.    Написание регулярных выражений
2.    Поиск текста с помощью регулярных выражений

Тема 6. Представления и параметры запросов.
6.1    Представления   
    Объекты запроса и ответа.
    Вспомогательные функции.
    Распределение путей по приложениям.
6.2    Преобразователи путей   
    Встроенные преобразователи путей.
    Параметры путей.
    Передача параметров путей функциям-обработчикам.
6.3    Параметры запросов   
    Параметры в URL.
    Параметры GET запросов.
Практические занятия   
1.    Распределение путей по приложениям
2.    Работа с преобразователями путей
3.    Работа с параметрами GET запросов

Тема 7. Шаблоны и статические файлы
7.1    Шаблоны    Шаблонизатор Django.
    Наследование шаблонов.
    Передача данных из приложения в шаблоны.
    Использование условий и циклов в шаблонах Django.
    Теги и фильтры Django.
    Встроенные фильтры.
7.2    Статические файлы   
    Структура и организация статических файлов в Django.
    Создание и настройка статических файлов для конкретных приложений.
    Подключение статических файлов в шаблонах.
Практические занятия   
1.    Работа с шаблонами.
2.    Передача данных из приложения в шаблоны.
3.    Использование встроенных фильтров
4.    Подключение статических файлов

Тема 8. Декораторы и фабрики декораторов.
8.1    Декораторы.    
    Декораторы: назначение, особенности создания и использования.
    Кэширование функций.
8.2    Фабрики декораторов.   
    Фабрики декораторы: назначение, особенности создания и использования.
Практические занятия   
1.    Декоратор для измерения время работы функции.

Тема 9. Регистрация и авторизация пользователей.
9.1    Общие вопросы безопасности   
    Встроенные механизмы идентификации и аутентификации в Django.
    Регистрация и авторизация пользователей.
    Процедура аутентификации.
Практические занятия   
1.    Создание пользователей.
2.    Настройка авторизации при доступе к функциям-обработчикам.

Тема 10. Промежуточная аттестация

Практические занятия    Зачет