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

DEV-PYWEB. Разработка WEB приложений на языке Python

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


Аннотация

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

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

В результате освоения программы обучающийся должен уметь:
• разрабатывать модели данных, использование ORM;
• работать с базами данных в Django;
• работать с миграциями;
• настраивать админ-зону для работы с данными;
• писать класс-базированные представления для API;
• создавать RESTful API приложения с помощью Django REST Framework;
• оптимизировать запросы к базе данных с использованием select_related и prefetch_related;
• тестировать Django приложений;
• писать тестовые сценарии для проверки корректности работы приложений;
• настроивать и разворачивать веб-приложения на сервере с помощью WSGI-сервера;
• собирать статические файлы.

В результате освоения программы обучающийся должен знать:
• понятие ORM, его преимущества и недостатки;
• назначение миграций и их использование;
• модели Django;
• архитектура REST API;
• CRUD операции и их соотнесение с HTTP методами;
• Django REST Framework;
• DRF сериализаторы и представления;
• generic DRF представления;
• N+1 проблему;
• select_related и prefetch_related для оптимизации запросов;
• типы тестовых сценариев;
• принципы обеспечения безопасности Web-приложений.

В результате освоения программы обучающийся должен приобрести практический опыт:

• разработки серверной части Web-сайтов на языке Python с использованием Django REST Framework;
• разворачивания Django проекта.

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

Тема 1. ORM и работа с базой данных
1.1    Введение в ORM и Django ORM   
    Что такое ORM.
    Преимущества использования ORM.
    Обзор Django ORM.
    Настройка базы данных.
1.2    Работа с моделями Django   
    Создание моделей.
    Описание полей модели.
    Описание связей между моделями.
    Миграции базы данных.
    Админ зона и регистрация моделей.
    Использование Django QuerySet для получения данных.
    Фильтрация, сортировка и группировка данных.
Практические занятия   
1.    Создание модели.
2.    Работа с миграциями.
3.    Выполнение запросов. Получение объектов из базы данных.

Тема 2. REST API. Django REST Framework
2.1    Введение в Django REST Framework   
    Обзор архитектуры и возможностей REST API.
    CRUD операции.
    Установка Django REST Framework.
2.2    Сериализаторы   
    Определение сериализаторов.
    Сериализация и десериализация моделей Django. 
2.3    DRF представления   
    Типы представлений в Django REST Framework.
    Создание представлений ViewSet.
    Определение маршрутов URL для представлений.
Практические занятия   
1.    Использование ViewSet представлений.
2.    Работа с crud операциями.

Тема 3. Оптимизация запросов
3.1    Введение в API Generic Views   
    Что такое API Generic Views и зачем они нужны.
    Основные преимущества и недостатки использования API Generic Views.  
    Создание и использование API Generic Views.
3.2    Оптимизация работы с базой данных   
    N+1 проблема.
    Профилирование запросов с использованием Django Debug Toolbar.
    Оптимизация запросов.
    Select_related и prefetch_related.
Практические занятия   
1.    Использование generic представлений
2.    Перегрузка метода get_queryset
3.    Оптимизация с помощью select_related
4.    Оптимизация с помощью prefetch_related

Тема 4. Тестирование в Django
4.1    Тестирование приложений   
    Инструменты и библиотеки для тестирования в Django и Django REST Framework.
    Тестирование Django-приложений.
    Тестирование Django REST Framework-приложений.
    Использование фикстур в тестировании.
Практические занятия   
1.    Тестирование моделей
2.    Тестирование представлений

Тема 5. Развертывание Django проекта
5.1    Развертывание Django проекта   
    Сборка статических файлов.
    Настройка сервера.
    Настройка проекта Django.
    Развертывание проекта Django.
Практические занятия   
1.    Развертывание Django проекта на хостинге

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

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