Сучасні технології розробки WEB-застосувань з використанням мови Python - Робоча програма навчальної дисципліни (Силабус)
Реквізити навчальної дисципліни
Рівень вищої освіти | Перший (бакалаврський) |
---|---|
Галузь знань | 12 Інформаційні технології |
Спеціальність | 126 Інформаційні системи та технології |
Освітня програма | Інтегровані інформаційні системи |
Статус дисципліни | Вибіркова |
Форма навчання | очна(денна) |
Рік підготовки, семестр | 3 курс, весняний семестр |
Обсяг дисципліни | 4 кредити ECTS /120 годин (36 годин лекцій, 18 годин лабораторних робіт) 120 годин (36 годин – Лекції, 18 годин – Лабораторні, 66 години – СРС) |
Семестровий контроль/ контрольні заходи | Залік / МКР, захист лабораторних робіт |
Розклад занять | 1 лекція (2 години) 1 раз на тиждень; 1 лабораторна робота (2 години) 1 раз на 2 тижні. |
Мова викладання | Українська |
Інформація про керівника курсу / викладачів |
к.т.н., доц., Барбарук В.М., |
Розміщення курсу | https://campus.kpi.ua |
Програма навчальної дисципліни
Опис навчальної дисципліни, її мета, предмет вивчання та результати навчання
Опис дисципліни. Курс присвячений сучасному фреймворку мови програмування Python – Django, про його базові можливості, особливості, способи інтеграції з іншими веббібліотеками. Розкриваються підходи використання сучасної архітектури побудови вебкаркасів MVC. Описуються способи використання сторонніх пакетів при проектуванні програм Django. Особлива увага приділяється практичним питанням використання базових можливостей фреймворку. Вивчення даної освітньої компоненти спонукає здобувачів освіти до формування вільного та творчого підходу до програмування сучасними мовами високого рівня, підвищенню інтересу до спостереження за тенденціями та новинами в галузі засобів розробки програмного забезпечення. Силабус освітньої компоненти «Сучасні технології розробки WEB-застосувань з використанням мови Python» складено відповідно до освітньої програми підготовки бакалаврів «Інтегровані інформаційні системи» спеціальності 126 – Інформаційні системи та технології.
Метою навчальної дисципліни є формування та закріплення у студентів наступних компетентностей: (КЗ 1) Здатність до абстрактного мислення, аналізу та синтезу; (КЗ 2) Здатність застосовувати знання у практичних ситуаціях; (КЗ 3) Здатність до розуміння предметної області та професійної діяльності; (КЗ 4) Здатність спілкуватися іноземною мовою; (КЗ 5) Здатність вчитися і оволодівати сучасними знаннями. (КС 3) Здатність до проектування, розробки, налагодження та вдосконалення системного, комунікаційного та програмно-апаратного забезпечення інформаційних систем та технологій, Інтернету речей (ІоТ), комп’ютерно-інтегрованих систем та системної мережної структури, управління ними; (КС 10) Здатність вибору, проектування, розгортання, інтегрування, управління, адміністрування та супроводжування інформаційних систем, технологій та інфокомунікацій, сервісів та інфраструктури організації; (КС 14) Здатність формувати нові конкурентоспроможні ідеї й реалізовувати їх у проєктах (стартапах).
Предмет дисципліни – застосування фреймворку Django та сучасних ORM при розробці вебдодатків з використанням Python.
Програмні результати навчання, на формування та покращення яких спрямована дисципліна: (ПРН 3) Використовувати базові знання інформатики й сучасних інформаційних систем та технологій, навички програмування, технології безпечної роботи в комп'ютерних мережах, методи створення баз даних та інтернет-ресурсів, технології розроблення алгоритмів і комп’ютерних програм мовами високого рівня із застосуванням об’єктно-орієнтованого програмування для розв’язання задач проектування і використання інформаційних систем та технологій; (ПРН 5) Аргументувати вибір програмних та технічних засобів для створення інформаційних систем та технологій на основі аналізу їх властивостей, призначення і технічних характеристик з урахуванням вимог до системи і експлуатаційних умов; мати навички налагодження та тестування програмних і технічних засобів інформаційних систем та технологій; (ПРН 7) Обґрунтовувати вибір технічної структури та розробляти відповідне програмне забезпечення, що входить до складу інформаційних систем та технологій; (ПРН 12) Застосовувати знання складу, структури, принципів реалізації та функціонування інформаційно-керуючих систем та виконувати розроблення, підтримку та супроводження інформаційних та програмно-технічні засобів, оцінювати ефективність використання інформаційно-керуючих систем на підприємствах; (ПРН 14) Демонструвати вміння аналізувати вимоги та розробляти вебдодатки, вебсервіси, вебсайти з використанням базових принципів, сучасних технологій та мов програмування для створення веб-застосувань, як інтерфейсу доступу до сервісів ІТ-інфраструктури.
Пререквізити та постреквізити дисципліни (місце в структурно-логічній схемі навчання за відповідною освітньою програмою)
Пререквізити: Для успішного засвоєння дисципліни здобувач освіти повинен володіти освітніми компонентами "Програмування", "Операційні системи", "Розроблення web-застосувань", "Комп’ютерні мереж", "Бази даних", "Спеціальні розділи математики", "Програмування", "Технології розроблення програмного забезпечення".
Постреквізити: Компетенції, знання та уміння, одержані в процесі вивчення освітнього компонента є необхідними для подальшого вивчення освітніх компонентів «Проектування інформаційних систем», «Управління проектами»
Зміст навчальної дисципліни
Лекційні заняття
Тема 1. Основи мови програмування Python
Тема 2. Функції в мові програмування Python
Тема 3.Технологія програмування мовою Python
Тема 4. Регулярні вирази в Python
Тема 5. Основи мережевого програмування в Python
Тема 6. Інтернет і Веб в Python
Тема 7. Основи серверного програмування на Python
Тема 8. Об'єктно-реляційне відображення (ORM)
Тема 9. Python ORM Peewee
Тема 10. ORM SQLAlchemy
Тема 11. Робота скриптів Python з NoSQL СУБД
Тема 12. Документо-орієнтована СУБД MongoDB
Тема 13. Інтеграція MongoDB з Python за допомогою PyMongo
Тема 14. Django: Вступ до фреймворка
Тема 15. Django: моделі, адміністрування, представлення, шаблони та URL-адреси, маршрутизація, API форм, шаблони багаторазового використання, автентифікація, захист представлення та ресурсів
Тема 16. Фреймворк Flask
Тема 17. Основи шаблонізатора Jinja
Тема 18.Робота з базами даних у Flask
Лабораторні заняття
Робота з базою даних SQLite
Використання СУБД PostgreSQL при створенні вебзастосунку мовою Python
Використання фреймворку FastAPI та SQLAlchemy ORM для створення вебзастосунку мовою Python
Використання СУБД MongoDB при створенні вебзастосунку мовою Python
Створення вебзастосунка використовуючи фреймворк Django: розгортання серверу Django, організація маршрутизації та розроблення представлення з використанням статичних вебсторінок.
Створення вебзастосунка використовуючи фреймворк Django: робота з формами, валідація даних, з розроблення представлення використанням шаблонів
Створення вебзастосунка використовуючи фреймворк Django: підключення до бази даних та робота с моделями
Створення вебзастосунка використовуючи фреймворк Flask: розгортання серверу Flask, організація маршрутизації, розроблення представлення з використанням шаблонів, робота з формами, валідація даних, підключення до бази даних та робота с моделями
Створення вебзастосунка використовуючи фреймворк Flask: реалізація аутентифікації користувача, панелі адміністратора, структурована організація проєкту
Навчальні матеріали та ресурси
Базова література
Python Sowtware Foundation. – URL: http://www.python.org
Milliken Connor. Python Projects for Beginners: A Ten-Week Bootcamp Approach to Python Programming. Apress. 2019. 351p.
Python 3: The Comprehensive Guide. Johannes Ernesti, Peter Kaiser. Published by Rheinwerk Computing, ISBN 10: 149322302X, 2022, 1078р..
Learn Web Development with Python: Get hands-on with Python Programming and Django web development. Fabrizio Romano, Gaston C. Hillar, Arun Ravindran. Packt Publishing Limited. ISBN-13: 978-1789953299. 2018. 796p
William S. Vincent. Django for Beginners: Build websites with Python and Django. Independently published. 2018. ISBN-13: 978-1983172663. 332p.
Miguel Grinberg. Flask Web Development: Developing Web Applications with Python 2nd Edition. O'Reilly. 2018. 312р.
Python Web Scraping Cookbook: Over 90 proven recipes to get you scraping with Python, microservices, Docker, and AWS - Kindle edition by Heydt, Michael. Packt Publishing; 1st edition. 2018. 366p.
Doug Farrell. The Well-Grounded Python Developer: How the pros use Python and Flask/ Doug Farrell. Hanning. 2023. 296р.
Допоміжна література
Мельник І.В. Основи програмування на мові Python. Том 1. Базові принципи побудови мови програмування Python та головні синтаксичні конструкції: комплексний навч. Посібник з курсів «Об’єктно-орієнтоване програмування» та «обчислювальні системи та мережі» для студентів-бакалаврів, які навчаються за освітньою програмою «Електронні прилади та пристрої» - К., Кафедра, 2020. – 372 с. ISBN 978-617-7301-71-3 (заг.) ISBN 978-617-7301-72-0 (Кн. 1)
Ben Shaw. Web Development with Django: Learn to build modern web applications with a Python-based framework. ISBN 978-1-83921-250-5. Packt Publishing. 2021. 826р.
Philip Ackermann. Full Stack Web Development: The Comprehensive Guide. SAP Press. 2023. 800p.
Nigel George. Build a Website With Django 3: A complete introduction to Django 3. Paeceioni.ISBN: 978-0994616890. 2019. 262p.
Expert Python Programming. 4th Edition/ Michał Jaworski , Tarek Ziadé. Still Publisher. ISBN: 978-1801071109. 2023. 630p.
Інформаційні ресурси для здобуття результатів навчання у неформальній освіті
PostgreSQL for Everybody Specialization https://www.coursera.org/specializations/postgresql-for-everybody (Лабораторна робота 2)
Introduction to FastAPI framework https://www.coursera.org/projects/introduction-to-fastapi-framework (Тема 10, Лабораторан робота 3)
Create a Python Application using PyMongo and MongoDB Database https://www.coursera.org/projects/python-application-pymango-mongodb-database (Тема 11, Тема 12, Лабораторан робота 4)
Django Application Development with SQL and Databases https://www.coursera.org/learn/developing-applications-with-sql-databases-and-django (Тема 10, Тема 14, Тема 15, Лабораторні роботи 5-7)
Django for Everybody Specialization https://www.coursera.org/specializations/django (Тема 10, Тема 14, Тема 15, Лабораторні роботи 5-7)
Django Web Framework https://www.coursera.org/learn/django-web-framework (Тема 10, Тема 14, Тема 15, Лабораторні роботи 5-7)
Developing AI Applications with Python and Flask https://www.coursera.org/learn/python-project-for-ai-application-development (Тема 16-18, Лабораторні роботи 8-9)
Create Your First Web App with Python and Flask https://www.coursera.org/projects/python-flask (Тема 16-18, Лабораторні роботи 8-9)
Навчальний контент
Методика опанування навчальної дисципліни (освітнього компонента)
Лекційні заняття
№ з/п | Назва теми лекції та перелік основних питань (перелік дидактичних засобів, посилання на літературу та завдання на СРС) |
---|---|
1 | Тема 1. Основи мови програмування Python Вступ. Що таке Python? Початок роботи з Python. Ключові слова та ідентифікатори в Python. Коментарі в Python. Змінні, Константи та Літерали в Python. Типи даних в Python. Перетворення (приведення) типів даних в Python. Ввід та вивід даних у Python. Оператори в Python. Простір імен та область видимості в Python. Порядок виконання коду в Python. Оператори if else в Python. Цикл for в Python. Цикл while в Python. Оператори break та continue в Python. Оператор pass в Python. Типи даних в Python. Числа в Python. Числові типи даних. Математичні функції модуля math в Python. Список (list) в Python. Кортеж (tuple) в Python. Рядки в Python. Абстракція списків (List Comprehension) в Python. Множина (set) в Python. Словник (dict) в Python. Література: [1-3]. Завдання на СРС: практичне застосування теоретичних знань, викладених у лекції[7]. |
2 | Тема 2. Функції в мові програмування Python Функції в Python. Параметри та аргументи функції в Python. Рекурсія в Python. Лямбда (анонімні функції) в Python. Область видимості змінних в Python. Ключове слово global в Python. Модулі в Python. Пакети в Python. Література: [1-3]. Завдання на СРС: практичне застосування теоретичних знань, викладених у лекції [7]. |
3 | Тема 3.Технологія програмування мовою Python Робота з файлами в Python. Читання та запис. Робота з каталогами в Python. Винятки в Python. Обробка винятків в Python. Користувацькі винятки в Python. Об’єктно-орієнтоване програмування (ООП) в Python. Класи та об’єкти в Python. Конструктори в Python. Деструктори в Python. Спадкування в Python. Множинне спадкування в Python. Перевантаження операторів в Python. Література: [1-3]. Завдання на СРС: практичне застосування теоретичних знань, викладених у лекції [7]. |
4 | Тема 4. Регулярні вирази в Python Модифікатори. Синтаксис регулярних виразів . Пошук всіх збігів з шаблоном . Заміна в рядку. Література: [1-3]. Завдання на СРС: практичне застосування теоретичних знань, викладених у лекції [7]. |
5 | Тема 5. Основи мережевого програмування в Python Програмні характеристики протоколів TCP та UDP. Порядок розподілу портів. Клієнти та сервери. Загальні відомості про сокети. Основні функції модуля socket. Використання сокетів. Огляд інших мережевих модулів. Література: [4]. Завдання на СРС: практичне застосування теоретичних знань, викладених у лекції [7]. |
6 | Тема 6. Інтернет і Веб в Python Дані та Інтернет. IP та браузер. Запит GET. HTTP, HTTPS і URI. HTTP: Типова взаємодія. HTTP: Структура протоколу. HTTP: Управлінням станом і сесія. HTTP: Приклад взаємодії. API веб-сервісів . Підтримка стека TCP / IP в Python . Загальний список та детальні представлення. Структура сесій. Література: [3]. Завдання на СРС: практичне застосування теоретичних знань, викладених у лекції [7]. |
7 | Тема 7. Основи серверного програмування на Python Бекенд, і фронтенд – варіанти архітектури ПЗ. Взаємодія бекенд з фронтенд. Варіанти взаємодії. Поняття про фреймворки. Fullstack фреймворки на мові Python. Фреймворк Django. Фреймворк Flask. Фреймворк Pyramid. Фреймворк TurboGears. Фреймворк Web2Py. Фреймворк Bottle. Фреймворк CherryPy. Фреймворк Tornado. Література: [3]. Завдання на СРС: практичне застосування теоретичних знань, викладених у лекції [7]. |
8 | Тема 8. Об'єктно-реляційне відображення (ORM) Парадигми «невідповідності». Переваги і недоліки ORM. Способи налаштування ORM. Шаблони ORM – Active record, Data mapper. Реалізації Python ORM. ORM SQLAlchemy, Peewee, ORM Django, PonyORM, SQLObject, Tortoise. Література: [4]. Завдання на СРС: практичне застосування теоретичних знань, викладених у лекції [7]. |
9 | Тема 9. Python ORM Peewee Основні функції Peewee. Визначення моделі. Підключення до бази даних. Зберігання даних. Отримання даних. Списки записів. Сортування. Фільтри. Агрегати та попередня вибірка. Функції SQL. Налаштування бази даних. Відображення Peewee. Визначення моделі Peewee. Таблиця бази даних нотаток у SQLite. Операція вставки. Виборка. Фільтрація. Використання декількох виразів. Вибірка стовпців. Підрахунок екземплярів. Відображення операторів SQL. Видалення екземпляру. Оновлення екземпляру. Відносини “один до багатьох”. Література: [4]. Завдання на СРС: практичне застосування теоретичних знань, викладених у лекції [7]. |
10 | Тема 10. ORM SQLAlchemy Використання ORM SQLAlchemy та його архітектура. Встановлення ORM SQLAlchemy , DBAPI та створення пула з’єднань. Підключення до бази даних. Створення схеми бази даних в SQLAlchemy Core. Стандартні типи SQL. Реляційні відношення. Обмеження на рівні таблиці. Зв’язок з таблицями та колонками з допомогою MetaData. CRUD операції з допомогою SQLAlchemy Core. Фільтрация записів . Сортування результату. Обмеження результатів та колонок. Групування результатів. Об’єднання (JOIN) . Оновлення та видалення записів. Транзакції. Література: [4]. Завдання на СРС: практичне застосування теоретичних знань, викладених у лекції [7]. |
11 | Тема 11. Робота скриптів Python з NoSQL СУБД Особливості NoSQL. Типи баз даних NoSQL. Сховище на основі пари ключ-значення. Колоночні бази даних. Документо-орієнтовані NoSQL . NoSQL на оснві графів. Переваги та недоліки NoSQL СУБД. Принципи BASE. Література: [2]. Завдання на СРС: практичне застосування теоретичних знань, викладених у лекції [7]. |
12 | Тема 12. Документо-орієнтована СУБД MongoDB Особливості MongoDB. Ключові компоненти архітектури MongoDB. Використання MongoDB з Python. Введення в MongoDB з використанням PyMongo. Порівняння MongoDB з RDBMS. Вміст пакету MongoDB. Література: [3, 4]. Завдання на СРС: практичне застосування теоретичних знань, викладених у лекції [7]. |
13 | Тема 13. Інтеграція MongoDB з Python за допомогою PyMongo Влаштування бази даних. Документи. Встановлення та адміністрування бази даних. Додавання даних. Вибірка та фільтрація. Пагінація та сортування. Індекси. Агрегатні функції. Оператори вибірки. Оновлення даних. Видалення даних. Встановлення посилань у БД. Управління колекцією. Робота з даними в MongoDB Compass. Література: [5]. Завдання на СРС: практичне застосування теоретичних знань, викладених у лекції [7]. |
14 | Тема 14. Django. Вступ до фреймворка Типові задачі для застосунку Django. Архітектура фреймворка Django. Особливості Django. Архітектура Джанго: MVC і MVT. Шаблон Django MVC-MVT. Компоненти Django. Недоліки Django. Встановлення Django. Створення проекту Django. Структура проекту Django. Створення програми. Література: [4, 5]. Завдання на СРС: практичне застосування теоретичних знань, викладених у лекції [7]. |
15 | Тема №15. Django: моделі, адміністрування, представлення, шаблони та URL-адреси, маршрутизація, API форм, шаблони багаторазового використання, автентифікація, захист представлення та ресурсів. Моделі. Міграція моделей. Операції з моделями. Представлення. Шаблони. Django Template Engine. Статичні файли. Основи Django Admin. URL-адреси. Базові URL-адреси. Просунуті URL-адреси. API URL-адрес. Патерни URL. Шаблони багаторазового використання. Форми. Рендеринг форм Bootstrap. Реалізація автентифікації користувачів: реєстрація, вхід, вихід, відновлення та зміна паролю. Захисти представлення від неавторизованих користувачів, надання доступу зареєстрованим користувачам. Література: [4, 5]. Завдання на СРС: практичне застосування теоретичних знань, викладених у лекції [7]. |
16 | Тема 16. Фреймворк Flask Що таке Flask? Встановлення. Перший Flask-проект у PyCharm. Маршрутизація. Динамічний URL. Обробка запитів: WSGI, worker, контекст, проксі, очищення. Контекст додатку. Відповідь сервера: шаблонізатор, об'єкт відповіді, кортеж відповіді. Перехоплення та скачування запитів. Шаблони. Література: [6-8]. Завдання на СРС: практичне застосування теоретичних знань, викладених у лекції [8]. |
17 | Тема 17. Основи шаблонізатора Jinja. Змінні, вирази і виклики функцій. Виклик функції. Атрибути і методи. Коментарі. Оголошення змінних. Цикл і умовні вирази. Інструкція if. Цикл for. Фільтри. Макроси. Екранування. Вкладені шаблони. Спадкування шаблонів. Створення URL. Робота зі статичними файлами. Розширення Flask. Автоматичний імпорт об'єктів. Робота з формами. WTForms. Форми в консолі. Візуалізація форми. Cookies. Сесії. Література: [6-8]. Завдання на СРС: практичне застосування теоретичних знань, викладених у лекції [8]. |
18 | Тема 18.Робота з базами даних у Flask Створення баз даних у Flask: SQLAlchemy, DBAPI, SQLite. Створення моделей. Отримання вибірки з БД. Визначення відносин (зв'язків). Відношення один-до-багатьох. Відношення один-до-одного. Відношення багато-до-багатьох. Література: [6-8]. Завдання на СРС: практичне застосування теоретичних знань, викладених у лекції [8]. |
Лабораторні заняття
№ | Назва лабораторної роботи | Кількість ауд. годин |
---|---|---|
1 | Лабораторна робота 1. Робота з базою даних SQLite Підключення до SQLite. Основні операції з даними SQLite Література: [3] |
2 |
2 | Лабораторна робота 2. Використання СУБД PostgreSQL при створенні вебзастосунку мовою Python Модуль psycopg. Підключення до сервера PostgreSQL. Створення бази даних та таблиці в PostgreSQL. Додавання даних. Отримання даних. Оновлення та видалення даних Література: [3] |
2 |
3 | Лабораторна робота 3. Використання фреймворку FastAPI та SQLAlchemy ORM для створення вебзастосунку мовою Python Підключення до бази даних через SQLAlchemy. Визначення моделей в SQLAlchemy. Основні операції з даними в SQLAlchemy. Моделі зі ставленням одним-багатьом. Література: [3] |
2 |
4 | Лабораторна робота 4. Використання СУБД MongoDB при створенні вебзастосунку мовою Python Організація бази даних. документи. Встановлення та адміністрування бази даних. Додавання даних. Вибірка та фільтрація. Пагінація та сортування. Індекси. Агрегатні функції. Оператори вибірки. Оновлення даних. Видалення даних. Встановлення посилань у БД. Управління колекцією. Робота з даними в MongoDB Compass. Література: [3] |
2 |
5 | Лабораторна робота 5. Створення вебзастосунка використовуючи фреймворк Django: розгортання серверу Django, організація маршрутизації та розроблення представлення з використанням статичних вебсторінок. Що таке Django. Встановлення та налаштування Django. Створення першого проекту. Створення першої програми. Література: [4,5] |
2 |
6 | Лабораторна робота 6. Створення вебзастосунка використовуючи фреймворк Django: робота з формами, валідація даних, з розроблення представлення використанням шаблонів. Опрацювання запиту. Визначення маршрутів та функції path та re_path. Отримання даних запиту. HttpRequest, HttpResponse та надсилання відповіді. Параметри уявлень. Вкладені маршрути та функція include. Установки рядка запиту. Переадресація та надсилання статусних кодів. Надсилання json. Відправлення та отримання кук. Створення та використання шаблонів. Передача даних шаблони. Вбудовані теги шаблонів. Фільтри шаблонів. Статичні файли. TemplateView. Налаштування шаблонів. Розширення шаблонів та фільтр extends. Вкладені шаблони та фільтр include. Література: [4,5] |
2 |
7 | Лабораторна робота 7. Створення вебзастосунка використовуючи фреймворк Django: підключення до бази даних та робота с моделями Налаштування форми та її полів. Валідація даних. Детальна настройка полів форми. Стилізація полів форм. Підключення до бази даних. Створення моделей. Типи полів моделей. QuerySet API. Створення та отримання об'єктів моделі. Редагування та видалення об'єктів моделі. Фільтрування values та values_list та сортування. Операції з безліччю. Отримання окремих об'єктів та перевірка їх наявності. Агрегатні операції. Виконання SQL-виразів. CRUD. Усі базові операції з моделями у веб-додатку. Ставлення одне до багатьох (One to Many). Практичний приклад зв'язку один до багатьох. Ставлення багато хто до багатьох (Many to Many). Ставлення багато хто до багатьох (Many to Many). Відношення один до одного (One to one). Література: [4,5] |
2 |
8 | Лабораторна робота 8. Створення вебзастосунка використовуючи фреймворк Flask: розгортання серверу Flask, організація маршрутизації, розроблення представлення з використанням шаблонів, робота з формами, валідація даних, підключення до бази даних та робота с моделями. Створення баз даних у Flask: SQLAlchemy і Flask-SQLAchemy, DBAPI, створення моделей, визначення відносин, створення таблиць. Основи ORM SQLAlchemy: додавання даних, видалення даних, запит даних, створення контактної форми. Міграції бази даних за допомогою Alembic: розширення Flask-Migrate, створення скрипта міграції Література: [6-8] |
2 |
9 | Лабораторна робота 9. Створення вебзастосунка використовуючи фреймворк Flask: реалізація аутентифікації користувача, панелі адміністратора, структурована організація проєкту Аутентифікація у Flask: створення моделі користувача, хешування паролів, інтеграція flask-login, обмеження доступу до перегляду, створення форми авторизації, авторизація користувачів, завершення сеансів користувачів. Структура та ескіз додатка Flask: налаштування на основі класів, створення пакета додатка, порядок виконання, запуск проєкту. Література: [6-8] |
2 |
Самостійна робота студента
Самостійна робота студентів полягає в самостійному вивченні основних розділів та реалізації лабораторних завдань за цими темами. Контроль виконання самостійної роботи проводиться при поточних контрольних заходах і на проміжній атестації за підсумками освоєння.
Очна форма
|
Назва теми, що виноситься на самостійне опрацювання | Кількість годин СРС |
---|---|---|
1 | Використання засобів мови програмування Python 3 для вирішення прикладних задач. | 6 |
2 | Використання СУБД SQLite, MySQL, PostgreSQL з мовою програмування Python 3. | 6 |
3 | Використання ORM Peewee з СУБД SQLite, MySQL, PostgreSQL та мовою програмування Python 3 | 6 |
4 | Обробка інформації NoSQL СУБД MongoDB на мові програмування Python 3 | 6 |
5 | Використання фреймворку Django з мовою програмування Python 3 для побудови вебсайту | 6 |
6 | Використання пакета FLASK з мовою програмування Python 3 для побудови вебсайту | 12 |
7 | Підготовка до лабораторних робіт | 18 |
8 | Підготовка до модульних контрольних робіт | 6 |
66 |
Політика та контроль
Політика навчальної дисципліни (освітнього компонента)
Система вимог, які ставляться перед здобувачем освіти:
– відвідування лекційних та лабораторних занять є обов’язковою складовою вивчення матеріалу;
– на лекції викладач користується власним презентаційним матеріалом;
– на лекції заборонено відволікати викладача від викладання матеріалу, усі питання, уточнення та ін. студенти задають в кінці лекції у відведений для цього час;
– на лекціях забороняється використовувати ноутбуки та смартфони з метою, яка не стосується занять;
– лабораторні роботи проходять у формі комп’ютерного практикуму. Основним завданням циклу лабораторних занять є практичне застосування теоретичних аспектів розробки вебдодатків мовою програмування Python;
– лабораторні роботи захищаються у два етапи – перший етап: студенти виконують завдання на допуск до захисту лабораторної роботи; другий етап – захист лабораторної роботи. Бали за лабораторну роботу враховуються лише за наявності електронного звіту;
– модульні контрольні роботи пишуться на лекційних заняттях без застосування допоміжних засобів (мобільні телефони, планшети та ін.); двогодинна модульна контрольна робота поділяється на дві одногодинні (45 хв.), що проводяться на лекційних заняттях;
– заохочувальні бали виставляються за: активність на лекціях; участь у факультетських та інститутських олімпіадах з навчальних дисциплін; участь у конкурсах робіт; підготовку оглядів наукових праць, презентацій по одній із тем СРС дисципліни тощо. Кількість заохочуваних балів на більше 10;
– штрафні бали виставляються за: невчасну здачу лабораторних робіт. Кількість штрафних балів на більше 10.
Види контролю та рейтингова система оцінювання результатів навчання (РСО)
Рейтинг студента з дисципліни складається із балів стартового рейтингу (протягом семестру). Бали стартового рейтингу протягом семестру студент отримує за:
виконання та захист 9 лабораторних робіт ();
виконання двох одногодинних модульних контрольних робіт (МКР)
();
заохочувальних () та штрафних балів
().
Критерії нарахування балів
Лабораторні роботи:
«відмінно» — повна відповідь на питання (не менше 90% потрібної інформації) та оформлений належним чином протокол до лабораторної роботи – 9 бали;
«добре» — достатньо повна відповідь на питання (не менше 75% потрібної інформації) та оформлений належним чином протокол до лабораторної роботи – 7 бали;
«задовільно» — неповна відповідь на питання (не менше 60% потрібної інформації), незначні помилки та оформлений належним чином протокол до лабораторної роботи – 5 бал;
«незадовільно» — незадовільна відповідь та/або не оформлений належним чином протокол до лабораторної роботи – 0 балів.
За кожне запізнення з поданням лабораторної роботи до захисту від встановленого терміну оцінка знижується на 1 бал (але не нижче 1 балу за кожну лабораторну роботу).
Модульні контрольні роботи:
«відмінно» — повна відповідь (не менше 90% потрібної інформації) – 9 балів;
«добре» — достатньо повна відповідь (не менше 75% потрібної інформації), або повна відповідь з незначними помилками – 6 балів;
«задовільно» — неповна відповідь (не менше 60% потрібної інформації) та незначні помилки – 3 бали;
«незадовільно» — незадовільна відповідь (неправильний розв’язок задачі), потребує обов’язкового повторного написання в кінці семестру – 0 балів;
Заохочувальні бали:
– за активну творчу роботу на лекції — 1 бал;
– за участь у модернізації однієї лабораторної роботи – 2 бали.
Міжсесійна атестація
За результатами навчальної роботи за перші 7 тижнів максимально можлива кількість балів – 36 балів. На першій атестації (8-й тиждень) студент отримує «зараховано», якщо його поточний рейтинг не менше 36х0,5 = 18 балів.
За результатами 13 тижнів навчання максимально можлива кількість балів – 60 балів. На другій атестації (14-й тиждень) студент отримує «зараховано», якщо його поточний рейтинг не менше 72х0,5 = 36 балів.
Максимальна сума вагових балів контрольних заходів протягом семестру складає:
R = 9 * rлаб + 2 * rМКР + rе**о − rш + rз= 7 * 10 + 2 * 9 + 1 − rш + rз = 81 + 18 + 1 + (rз−rш) = 100 + (rз−rш)
де rлаб – бал за лабораторну роботу (0…9);
rмкр – бал за написання МКР (0…9);
rео – бал за експрес опитування (0…1)
Залік:
Умовою допуску до заліку є зарахування всіх лабораторних робіт, написання обох модульних контрольних робіт та стартовий рейтинг не менше 60 балів.
Під час заліку студенти виконують письмову контрольну роботу. Кожен білет містить два теоретичних запитання (завдання) і два практичних завдання та одне тестове. Перелік теоретичних питань наведений у додатках 1 та 2. Кожне запитання (завдання) оцінюється у 10 балів.
Система оцінювання теоретичних питань:
«відмінно», повна відповідь, не менше 90% потрібної інформації, що виконана згідно з вимогами до рівня «умінь», (повне, безпомилкове розв’язування завдання) – 9-10 балів;
«добре», достатньо повна відповідь, не менше 75% потрібної інформації, що виконана згідно з вимогами до рівня «умінь або є незначні неточності (повне розв’язування завдання з незначними неточностями) – 7-8 балів;
«задовільно», неповна відповідь, не менше 60% потрібної інформації, що виконана згідно з вимогами до «стереотипного» рівня та деякі помилки (завдання виконане з певними недоліками) – 5-6 бали;
«незадовільно», відповідь не відповідає умовам до «задовільно» – 0-4 балів.
Сума стартових балів та балів за залікову контрольну роботу переводиться до залікової оцінки згідно з таблицею:
Таблиця 1. Переведення рейтингових балів до оцінок за університетською шкалою
Бали | Оцінка |
---|---|
95-100 | відмінно |
85-94 | дуже добре |
75-84 | добре |
65-74 | задовільно |
60-64 | достатньо |
Менше 60 | незадовільно |
Є не зараховані лабораторні роботи та/або виконання МКР на оцінку «незадовільно» | не допущено |
Додаткова інформація з дисципліни (освітнього компонента)
передбачена можливість закривати частину лабораторного та лекційного матеріалу шляхом здобування сертифікатам по online курсам (наприклад, COURSERA) відповідних розділів та тем дисципліни;
перелік теоретичних питань, які виносяться на семестровий контроль наведено в Додатку 1;
на початку семестру викладач аналізує існуючі курси по тематиці дисципліни та пропонує пройти відповідні безкоштовні курси студентам. Після отриманням студентом сертифікату проходження дистанційних чи онлайн курсів за відповідною тематикою, викладач закриває відповідну частину курсу (лабораторні чи лекції) за попередньою домовленістю з групою.
Робочу програму навчальної дисципліни (силабус):
Складено к.т.н., доцентом Барбаруком Віктором Миколайовичем
Ухвалено кафедрою ІСТ (протокол № 16 від 12.06.2024 р.)
Погоджено Методичною комісією факультету (протокол № 10 від 21.06.2024 р.)
Додаток 1
Перелік теоретичних питань на залік
Структура додатків на мові програмування Python. Інтегровані середовища розробки (Python IDE).
Прості типи. Цілочисельні типи. Дійсні типи. Символи. Логічний тип. Літерали. Змінні.
Перетворення і приведення типів. Приведення несумісних типів. Автоматичне перетворення типів у виразах.
Складні структури даних. Рядки. Перетворення типів даних в рядки. Об’єднання та розмноження рядків.
Арифметичні операції. Операції відношення. Логічні операції. Операція присвоєння. Оператори.
Поняття функції. Власні функції. Параметри функції. Аргументи функцій. Позиційні аргументи. Іменовані аргументи.
Особливості об'єктно-орієнтованого програмування в PYTHON. Створення класів і об'єктів. Клас як модуль та як утворювач об'єктів. Зміна полів об'єкта. Конструктор класу – метод __init__(), конструктор и деструктор.
Програмні характеристики протоколів TCP та UDP.
Підтримка стека TCP / IP в Python. Загальний список та детальні представлення. Структура сесій.
Бекенд, і фронтенд - варіанти архітектури ПЗ. Взаємодія бекенд з фронтенд. Варіанти взаємодії.
Регулярний вираз. Модифікатори. Синтаксис регулярних виразів. Пошук всіхзбігів з шаблоном. Заміна в рядку. Метод split().
Поняття про фреймворки. Fullstack фреймворки на мові Python.Фреймворк Django. Фреймворк Flask. Фреймворк Pyramid.
Об'єктно-реляційне відображення (ORM). Парадигми «невідповідності». Переваги і недоліки ORM. Способи налаштування ORM. Шаблони ORM – Active record, Data mapper. Реалізації Python ORM.
Основні функції ORM Peewee. Визначення моделі. Підключення до бази даних. Зберігання даних. Отримання даних.
Основи класів і об'єктів Python. Оголошення полів всередині класу. Визначення методів всередині класу. Конструктори класу. Ініціалізація полів класу. Блоки Ініціалізації.
Виклик одного конструктора з іншого. Створення констант класу в Python. Статичні члени класу. Методи-фабрики.
Спадкування. Перевизначення методів базового класу. Перевизначення методів базового класу. Фінальні класи і методи. Абстрактні класи та методи.
Відображення ORM Peewee. Визначення моделі Peewee. Таблиця бази даних нотаток у SQLite. Операція вставки. Виборка. Фільтрація. Використання декількох виразів. Вибірка стовпців.
Використання ORM SQLAlchemy та його архітектура. Встановлення ORM SQLAlchemy , DBAPI та створення пула з’єднань. Підключення до бази даних. Створення схеми бази даних в SQLAlchemy Core.
CRUD операції з допомогою SQLAlchemy Core. Фільтрация записів. Сортування результату. Обмеження результатів та колонок.
Робота скриптів Python з NoSQL СУБД. Особливості NoSQL. Типи баз даних NoSQL
Особливості СУБД MongoDB. Ключові компоненти архітектури MongoDB. Використання MongoDB з Python. Введення в MongoDB з використанням PyMongo..
Порівняння MongoDB з RDBMS. Вміст пакету MongoDB.
Взаємодія з MongoDB через Mongo Shell. Інтеграція Python з MongoDB..
Object document mapper (ODM) MongoEngine. Робота з документами з використанням MongoEngine. Об’єктно-орієнтовані функції ODM MongoEngine.
Створення програми Flask. Створення шляхів (route). Запуск сервера розробки.
Обробка запитів в Flask. Контексти в Flask.
Залежності Jinja2 та Werkzeug в Flask.
Маршрутизація. Модуль маршрутизації від Werkzeug. Генерація URL. HTTP методи.
Статичні файли в Flask. Рендеринг шаблонів. Локальні контексти (Context Locals). Об’єкт запиту. Використання Cookies. Шаблони Jinja2.
Форми HTML в Flask. Процес управління формою в Flask. Робота з формами.
Форми WTForms. Встановлення SECRET_KEY. Форми в консолі. Рендеринг форми. Рендеринг полів.
Використання Flask-SQLAlchemy. Конфігурація Flask-SQLAlchemy.
Моделі баз даних. Створення міграції. Перша міграція бази даних. Процес оновлення бази даних та відкат змін Upgrade та Downgrade.
Архітектура фреймворка Django. Особливості Django. Архітектура Джанго: MVC і MVT.
Шаблон Django MVC-MVT. Компоненти Django. Недоліки Django. Встановлення Django.
Створення проекту Django. Структура проекту Django. Створення програми. Проектування схеми бази даних. Активація програми. Створення і застосування міграцій.