Файл: поволжский государственный университет телекоммуникаций и информатики.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 07.11.2023

Просмотров: 351

Скачиваний: 14

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Федеральное государственное бюджетное образовательное учреждение высшего образования
«ПОВОЛЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ТЕЛЕКОММУНИКАЦИЙ И ИНФОРМАТИКИ»
Факультет «Заочного обучения»
Кафедра «Информационные системы и технологии»
Платформы и программные среды разработки информационных систем
Лабораторные работы
Группа ИСТ-90Д
Богородцев С.А. шифр. № 193097

Лабораторная работа № 1
Цель работы
Изучение основных принципов работы HTTP-протокола, HTML- страниц и разработки веб-приложений. Настройка виртуального окружения для работы с Python. Разработка простого веб-приложения на языке Python с помощью веб-фреймворка Flask.
Создание виртуального окружения для разработки
Перед тем, как начать разрабатывать наше приложение, нужно создать виртуальное окружение Python. Для этого создадим новую директорию для нашего окружения при помощи командной строки. Открыть её можно нажав горячие клавиши Win + R, потом ввести в открывшееся окно “cmd” и нажать на клавишу enter. В командной строке введём команду “mkdir <имя директории>”, эта команда создаёт новую директорию с указанным именем.
Команда для создания директории на диске C с именем Environment:
Рис 1.1
Затем переходим в эту директорию с помощью команды “cd <имя директории>”. Пример перехода в директорию с помощью этой команды:
Рис 1.2
Теперь, когда мы перешли в созданную нами директорию, мы можем создавать в ней окружение для нашего будущего приложения. Чтобы это сделать, мы должны выполнить следующую команду: “python -m venv <имя окружения>”.
Пример создания окружения в директории
“PythonEnvironment” с именем “environment”:

Рис 1.3
В этой директории появятся папки и файла, необходимые для работы окружения. Чтобы начать работать в этом окружении, для начала нужно его активировать. Для этого, находясь в созданной нами директории нужно выполнить следующую команду:
“<имя окружения>\Scripts\activate”. Этой командой мы запустим пакетный файл под названием “activate”, который и активирует нашу среду.
Пример активации среды:
Рис 1.4
После активации среды программирования в вашей командной строке появится префикс environment и она будет выглядеть следующим образом:
Рис 1.5
Данный префикс служит индикатором того, что среда environment активна (имя среды может быть другим, в зависимости от того, как вы назвали ее при создании).
Установка фреймворка Flask
Теперь мы можем установить пакеты Python и изолировать наш код проекта от основной системы Python. Это делается с помощью pip и python.
Чтобы установить Flask, запустим следующую команду:
Рис 1.6
После завершения установки запустим следующую команду, чтобы подтвердить установку:

from flask import
Flask app
= Flask(
name
)
@
app
.route
(
"/"
,
methods
= [
'GET'
]) def hello
():
return
"""

Бадалов Виталий



Рис 1.8
Запуск и проверка работоспособности приложения
Для запуска вашего веб-приложения нам сначала нужно указать Flask, где искать приложение (в вашем случае файл hello_world.py) с помощью переменной среды FLASK_APP:
Рис 1.9
Затем запустим его в режиме разработки с помощью переменной среды FLASK_ENV:
Рис 1.10
И наконец, запустим приложение, используя команду “flask run”:
Рис 1.11
После запуска приложения мы можем увидеть следующее:
Рис 1.12
Откроем браузер и введём URL http://127.0.0.1:5000/. Мы получим следующий результат в качестве ответа. Это подтверждает то, что ваше приложение успешно работает.

Контрольные вопросы

1. Что такое HTML? Какие теги вы знаете?
HTML (HyperText Markup Language, язык разметки гипертекста) — это система верстки, которая определяет, как и какие элементы должны располагаться на веб-странице.
Теги

Начальный тег показывает, где начинается элемент, конечный — где заканчивается.

Закрывающий тег образуется путем добавления слэша / перед именем тега: <имя тега>…имя тега>. Между начальным и закрывающим тегами находится содержимое тега — контент.
Одиночные теги не могут хранить в себе содержимого напрямую, оно прописывается как значение атрибута, например, тег создаст кнопку с текстом «Кнопка» внутри.
Теги могут вкладываться друг в друга, например,
Текст
При вложении следует соблюдать порядок их закрытия (принцип
«матрёшки»), например, следующая запись будет неверной:
Текст
.

2. Что такое HTTP? Какие методы существуют?
Протокол передачи гипертекста (HTTP) — это протокол прикладного уровня для распределенных, совместных, гипермедиа информационных систем. Это основа для передачи данных для Всемирной паутины (т.е.
Интернета) с 1990 года. HTTP — это общий протокол без протокола состояния, который можно использовать для других целей, а также с использованием расширений его методов запроса, кодов ошибок и заголовков.

3. Что такое Flask и зачем он нужен?

Flask —веб-фреймворк, написанный на языке Python, предлагающий полезные инструменты и функции для облегчения процесса создания веб- приложений с использованием Python. Он обеспечивает гибкость и является более доступным фреймворком для новых разработчиков, так как позволяет создать веб-приложение быстро, используя только один файл Python. Flask — это расширяемая система, которая не обязывает использовать конкретную структуру директорий и не требует сложного шаблонного кода перед началом использования.
Выводы:
В результате проделанной работы мы научились создавать собственное окружение для разработки на Python, установили фреймворк Flask, создали
Python-файл hello_world и написали на нем код простого веб-приложения, который выводит фамилию и имя в главном окне браузера, а в качестве заголовка используется номер группы. Запустили написанное веб- приложение и проверили его работоспособность.

Лабораторная работа № 2
Цель работы
Изучение основных принципов работы HTTP-протокола, HTML- страниц и разработки веб-приложений. Настройка виртуального окружения для работы с Python. Разработка простого веб-приложения на языке Python с помощью веб-фреймворка Flask.
Создание виртуального окружения для разработки
Перед тем, как начать разрабатывать наше приложение, нужно создать виртуальное окружение Python. Для этого создадим новую директорию для нашего окружения при помощи командной строки. Открыть её можно нажав горячие клавиши Win + R, потом ввести в открывшееся окно “cmd” и нажать на клавишу enter. В командной строке введём команду “mkdir <имя директории>”, эта команда создаёт новую директорию с указанным именем.
Команда для создания директории на диске C с именем Environment:
Рис 1.1
Затем переходим в эту директорию с помощью команды “cd <имя директории>”. Пример перехода в директорию с помощью этой команды:
Рис 1.2
Теперь, когда мы перешли в созданную нами директорию, мы можем создавать в ней окружение для нашего будущего приложения. Чтобы это сделать, мы должны выполнить следующую команду: “python -m venv <имя окружения>”.
Пример создания окружения в директории
“PythonEnvironment” с именем “environment”:

Рис 1.3
В этой директории появятся папки и файла, необходимые для работы окружения. Чтобы начать работать в этом окружении, для начала нужно его активировать. Для этого, находясь в созданной нами директории нужно выполнить следующую команду:
“<имя окружения>\Scripts\activate”. Этой командой мы запустим пакетный файл под названием “activate”, который и активирует нашу среду.
Пример активации среды:
Рис 1.4
После активации среды программирования в вашей командной строке появится префикс environment и она будет выглядеть следующим образом:
Рис 1.5
Данный префикс служит индикатором того, что среда environment активна (имя среды может быть другим, в зависимости от того, как вы назвали ее при создании).
Установка фреймворка Flask
Теперь мы можем установить пакеты Python и изолировать наш код проекта от основной системы Python. Это делается с помощью pip и python.
Чтобы установить Flask, запустим следующую команду:
Рис 1.6
После завершения установки запустим следующую команду, чтобы подтвердить установку:
from flask import
Flask app
= Flask(
name
)
@
app
.route
(
"/"
,
methods
= [
'GET'
]) def hello
():
return
"""


Бадалов Виталий


Рис 1.8
Запуск и проверка работоспособности приложения
Для запуска вашего веб-приложения нам сначала нужно указать Flask, где искать приложение (в вашем случае файл hello_world.py) с помощью переменной среды FLASK_APP:
Рис 1.9
Затем запустим его в режиме разработки с помощью переменной среды FLASK_ENV:
Рис 1.10
И наконец, запустим приложение, используя команду “flask run”:
Рис 1.11
После запуска приложения мы можем увидеть следующее:
Рис 1.12
Откроем браузер и введём URL http://127.0.0.1:5000/. Мы получим следующий результат в качестве ответа. Это подтверждает то, что ваше приложение успешно работает.

Контрольные вопросы

2. Что такое HTML? Какие теги вы знаете?
HTML (HyperText Markup Language, язык разметки гипертекста) — это система верстки, которая определяет, как и какие элементы должны располагаться на веб-странице.
Теги

Начальный тег показывает, где начинается элемент, конечный — где заканчивается.

Закрывающий тег образуется путем добавления слэша / перед именем тега: <имя тега>…имя тега>. Между начальным и закрывающим тегами находится содержимое тега — контент.
Одиночные теги не могут хранить в себе содержимого напрямую, оно прописывается как значение атрибута, например, тег создаст кнопку с текстом «Кнопка» внутри.
Теги могут вкладываться друг в друга, например,
Текст
При вложении следует соблюдать порядок их закрытия (принцип
«матрёшки»), например, следующая запись будет неверной:
Текст
.

4. Что такое HTTP? Какие методы существуют?
Протокол передачи гипертекста (HTTP) — это протокол прикладного уровня для распределенных, совместных, гипермедиа информационных систем. Это основа для передачи данных для Всемирной паутины (т.е.
Интернета) с 1990 года. HTTP — это общий протокол без протокола состояния, который можно использовать для других целей, а также с использованием расширений его методов запроса, кодов ошибок и заголовков.

5. Что такое Flask и зачем он нужен?

Flask —веб-фреймворк, написанный на языке Python, предлагающий полезные инструменты и функции для облегчения процесса создания веб- приложений с использованием Python. Он обеспечивает гибкость и является более доступным фреймворком для новых разработчиков, так как позволяет создать веб-приложение быстро, используя только один файл Python. Flask — это расширяемая система, которая не обязывает использовать конкретную структуру директорий и не требует сложного шаблонного кода перед началом использования.
Выводы:
В результате проделанной работы мы научились создавать собственное окружение для разработки на Python, установили фреймворк Flask, создали
Python-файл hello_world и написали на нем код простого веб-приложения, который выводит фамилию и имя в главном окне браузера, а в качестве заголовка используется номер группы. Запустили написанное веб- приложение и проверили его работоспособность.


Лабораторная работа № 3
Цель работы
Изучение основных принципов работы реляционной базы данных, языка запросов SQL и интеграции базы данных с Python приложением.
Мы разработаем очень маленькую базу данных приложения для социальных сетей. База данных будет состоять из четырех таблиц:
 users
 posts
 comments
 likes
Схема базы данных показана на рисунке ниже.
Пользователи (users) и публикации (posts) будут находиться иметь тип связи один-ко-многим: одному читателю может понравиться несколько постов. Точно так же один и тот же юзер может оставлять много
комментариев (comments), а один пост может иметь несколько комментариев.
Таким образом, и users, и posts по отношению к comments имеют тот же тип связи. А лайки (likes) в этом плане идентичны комментариям.
В Python по умолчанию нет модуля, который можно использовать для подключения к базе данных MySQL. Для этого нам нужно установить драйвер Python для MySQL. Одним из таких драйверов является mysql- connector-python. Скачаем этот модуль Python SQL с помощью pip: pip install mysql-connector-python
MySQL – это серверная система управления базами данных. Один сервер MySQL может хранить несколько баз данных. В отличие от SQLite, где соединение равносильно порождению БД, формирование базы данных
MySQL состоит из двух этапов:
1. Установка соединения с сервером MySQL.
2. Выполнение запроса для создания БД.
Определим функцию, которая будет подключаться к серверу MySQL и возвращать объект подключения: import mysql.connector from mysql.connector import Error def create_connection(host_name, user_name, user_password):
connection = None try:
connection = mysql.connector.connect(
passwd=user_password
)
print("Connection to MySQL DB successful")
except Error as e:
print(f"The error '{e}' occurred")
return connection connection = create_connection("localhost", "root", "")
В приведенном выше коде мы определили новую функцию create_connection(), которая принимает три параметра:
1. host_name
2. user_name host=host_name, user=user_name,

3. user_password
Модуль mysql.connector определяет метод connect(), используемый в седьмой строке для подключения к серверу MySQL. Как только соединение установлено, объект connection возвращается вызывающей функции. В последней строке функция create_connection() вызывается с именем хоста, именем пользователя и паролем.
Пока мы только установили соединение. Самой базы ещё нет. Для этого мы определим другую функцию – create_database(), которая принимает два параметра:
1. Объект connection;
2. query – строковый запрос о создании базу данных.
Вот как выглядит эта функция: def create_database
(connection, query)
:
cursor = connection.cursor()
try
:
cursor.execute(query)
print(
"Database created successfully"
)
except
Error as e:
print(
f"The error '{e}' occurred"
)
Для выполнения запросов используется объект cursor.
Создадим базу данных sm_appдля нашего приложения на сервере
MySQL: create_database_query =
"CREATE DATABASE sm_app" create_database(connection, create_database_query)
Теперь у нас есть база данных на сервере. Однако объект connection, возвращаемый функцией create_connection() подключен к серверу MySQL. А нам необходимо подключиться к базе данных sm_app. Для этого нужно изменить create_connection() следующим образом: def create_connection
(host_name, user_name, user_password, db_name)
:
connection =
None try
:
connection = mysql.connector.connect(
passwd=user_password,
database=db_name host=host_name, user=user_name,

print(
"Connection to MySQL DB successful"
)
except
Error as e:
print(
f"The error '{e}' occurred"
)
return connection
Функция create_connection() теперь принимает дополнительный параметр с именем db_name. Этот параметр указывает имя БД, к которой мы хотим подключиться. Имя теперь можно передать при вызове функции: connection = create_connection(
"localhost"
,
"root"
,
""
,
"sm_app"
)
Скрипт успешно вызывает create_connection() и подключается к базе данных sm_app.
Создание таблиц
Рассмотрим, как формировать таблицы внутри этих трех баз данных.
Чтобы создать таблицу в MySQL, нужно передать запрос в cursor.execute(). Создадим новый вариант функции execute_query(): def execute_query
(connection, query)
:
cursor = connection.cursor()
try
:
cursor.execute(query)
connection.commit()
print(
"Query executed successfully"
)
except
Error as e:
print(
f"The error '{e}' occurred"
)
Описываем таблицу users: create_users_table =
"""
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT,
name TEXT NOT NULL,
age INT,
gender TEXT,
nationality TEXT,
PRIMARY KEY (id)
) ENGINE = InnoDB
"""
execute_query(connection, create_users_table)
Запрос для реализации отношения внешнего ключа в MySQL немного отличается от SQLite. Более того, MySQL использует ключевое слово
AUTO_INCREMENT для указания столбцов, значения которых автоматически увеличиваются при вставке новых записей.
)

Следующий скрипт составит таблицу posts, содержащую внешний ключ user_id, который ссылается на id столбца таблицы users: create_posts_table =
"""
CREATE TABLE IF NOT EXISTS posts (
id INT AUTO_INCREMENT,
title TEXT NOT NULL,
description TEXT NOT NULL,
user_id INTEGER NOT NULL,
FOREIGN KEY fk_user_id (user_id) REFERENCES users(id),
PRIMARY KEY (id)
) ENGINE = InnoDB
"""
execute_query(connection, create_posts_table)
Аналогично для создания таблиц comments и likes, передаём соответствующие CREATE-запросы функции execute_query().
Вставка записей
Есть два способа вставить записи в базы данных MySQL из приложения Python. Первый подход: можно сохранить запрос INSERT INTO в строке, а затем использовать для вставки записей cursor.execute().
Ранее мы определили функцию-оболочку execute_query(), которую использовали для вставки записей. Мы можем использовать ту же функцию: create_users =
"""
INSERT INTO
`users` (`name`, `age`, `gender`, `nationality`)
VALUES
('James', 25, 'male', 'USA'),
('Leila', 32, 'female', 'France'),
('Brigitte', 35, 'female', 'England'),
('Mike', 40, 'male', 'Denmark'),
('Elizabeth', 21, 'female', 'Canada');
"""
execute_query(connection, create_users)
Второй подход использует метод cursor.executemany(), который принимает два параметра:
1. Строка query, содержащая заполнители для вставляемых записей.
2. Список записей, которые мы хотим вставить.
Пример, который вставляет две записи в таблицу likes:
sql =
"INSERT INTO likes ( user_id, post_id ) VALUES ( %s, %s )" val = [(
4
,
5
), (
3
,
4
)]
cursor = connection.cursor() cursor.executemany(sql, val) connection.commit()
Проще использовать метод курсора executemany().
Извлечение данных из записей
Процесс выбора записей в MySQL. Можно снова использовать cursor.execute(). Однако после этого потребуется вызвать метод курсора fetchall(). Этот метод возвращает список кортежей, где каждый кортеж сопоставлен с соответствующей строкой в извлеченных записях. Чтобы упростить процесс, напишем функцию execute_read_query(): def execute_read_query
(connection, query)
:
cursor = connection.cursor()
result =
None try
:
cursor.execute(query)
result = cursor.fetchall()
return result except
Error as e:
print(
f"The error '{e}' occurred"
)
Теперь выберем все записи из таблицы users: select_users =
"SELECT * FROM users"
users = execute_read_query(connection, select_users)
for user in users:
print(user)
Вывод следующий:
(
'The weather is very hot today'
,
1
)
(
'I need some help with my work'
,
1
)
(
'I am getting married'
,
2
)
(
'It was a fantastic game of tennis'
,
1
)
(
'Anyone up for a late night party today?'
,
2
)
Обновление записей таблицы
Снова можно применить execute_query(). В качестве примера обновим текст поста с id равным 2. Сначала создадим описание для SELECT: update_post_description =
"""
UPDATE
posts
SET
description = "The weather has become pleasant now"