Научная статья на тему 'РАЗРАБОТКА СЕРВЕРНОЙ ЧАСТИ ДЛЯ ПРЕДОСТАВЛЕНИЯ СПРАВОЧНОЙ ИНФОРМАЦИИ ПРОЕКТА КРАСНОЯРСКИЙ ХАЙКИНГ'

РАЗРАБОТКА СЕРВЕРНОЙ ЧАСТИ ДЛЯ ПРЕДОСТАВЛЕНИЯ СПРАВОЧНОЙ ИНФОРМАЦИИ ПРОЕКТА КРАСНОЯРСКИЙ ХАЙКИНГ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
6
1
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
backend / Flask / Python / база данных / взаимодействие клиента и сервера / backend / Flask / Python / database / client-server interaction

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Д.А. Крутько, В.В. Буряченко

Рассматривается реализация клиент-серверной части приложения для работы со справочной информацией по проекту Красноярский Хайкинг.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

DEVELOPMENT OF THE SERVER PART TO PROVIDE REFERENCE INFORMATION OF THE KRASNOYARSK HIKING PROJECT

The implementation of the client-server part of the application for working with reference information on the Krasnoyarsk Hiking project is considered.

Текст научной работы на тему «РАЗРАБОТКА СЕРВЕРНОЙ ЧАСТИ ДЛЯ ПРЕДОСТАВЛЕНИЯ СПРАВОЧНОЙ ИНФОРМАЦИИ ПРОЕКТА КРАСНОЯРСКИЙ ХАЙКИНГ»

Актуальные проблемы авиации и космонавтики - 2022. Том 2

УДК 004.042

РАЗРАБОТКА СЕРВЕРНОЙ ЧАСТИ ДЛЯ ПРЕДОСТАВЛЕНИЯ СПРАВОЧНОЙ ИНФОРМАЦИИ ПРОЕКТА КРАСНОЯРСКИЙ ХАЙКИНГ

Д. А. Крутько Научный руководитель - В. В. Буряченко

Сибирский государственный университет науки и технологий имени академика М. Ф. Решетнева Российская Федерация, 660037, г. Красноярск, просп. им. газ. «Красноярский рабочий», 31

E-mail: krutko.d00@gmail.com

Рассматривается реализация клиент-серверной части приложения для работы со справочной информацией по проекту Красноярский Хайкинг.

Ключевые слова: backend, Flask, Python, база данных, взаимодействие клиента и сервера.

DEVELOPMENT OF THE SERVER PART TO PROVIDE REFERENCE INFORMATION

OF THE KRASNOYARSK HIKING PROJECT

D. A. Krutko Scientific supervisor - V. V. Buryachenko

Reshetnev Siberian State University of Science and Technology 31, Krasnoyarskii rabochii prospekt, Krasnoyarsk, 660037, Russian Federation E-mail: krutko.d00@gmail.com

The implementation of the client-server part of the application for working with reference information on the Krasnoyarsk Hiking project is considered.

Keyword: backend, Flask, Python, database, client-server interaction.

На сегодняшний день актуальна тема поддержания здорового образа жизни. Люди стремятся следить за своим здоровьем, занимаются спортом, а также путешествуют. Они постоянно находятся в поиске различных мест посещения. Красноярский край обладает очень богатой природой. Муниципальное молодежное автономное учреждение г. Красноярска «Центр путешественников» — это спорт и туризм, лагеря и экспедиции, альпинизм и спелеология, экскурсии и прогулки [1]. Организация имеет достаточно большой поток информации, которую необходимо структурировать для пользователей. В связи с этим разработка клиент-серверной системы справочной информации по проекту Красноярский хайкинг будет полезна для разработки мобильного приложения, содержащего справочную информацию.

Архитектура «Клиент-сервер» — это вычислительная или сетевая архитектура, в которой задания или сетевая нагрузка распределены между поставщиками услуг, называемыми серверами, и заказчиками услуг, называемыми клиентами [2]. Клиент и сервер фактически является программным обеспечением. В веб-приложении роль клиента чаще всего выполняет браузер, а роль сервера - веб-сервер.

Структура программного продукта разрабатываемого приложения состоит из: базы данных, серверной части и мобильного приложения. Мобильное приложение привязано к серверу, на котором хранится база данных со справочной информацией. По требованию пользователей происходит обращение к серверу за получением или отправкой какой-либо

Секция «Программные средства и информационные технологии»

информации из базы данных, затем, через серверную часть возвращается ответ в мобильное приложение.

Серверная часть системы будет реализовываться на высокоуровневом языке программирования Python версии 3.9 с использованием веб-фреймворка Flask. Python поддерживает несколько парадигм программирования, в том числе структурное, объектно-ориентированное и функциональное. Flask — фреймворк для создания веб-приложения на языке программирования Python, использующий набор инструментов Werkzeug, а также шаблонизатор Jinja2. Относится к категории так называемых микрофреймворков — минималистических каркасов веб-приложений, сознательно представляющих лишь самые базовые возможности [3].

Перейдем к рассмотрению процесса реализации базы данных. Изначально, Flask не поддерживает базы данных. Это одна из многих областей, в которых Flask намеренно не самодостаточен, что хорошо для нас, так как у нас появляется свобода выбора базы данных, которая наилучшим образом подходит для реализуемого приложения.

На сегодняшний день существуют две конкурирующих системы проектирования баз данных:

1. Реляционные базы данных.

2. Нереляционные или NoSQL базы данных.

Реляционные базы данных по традиции используют веб-приложении. Они хранят данные в таблицах и колонках и используют внешний ключ для создания связи между несколькими таблицами.

В последние годы популярность баз данных NoSQL выросла. Такие базы данных не хранят данные в таблицах и колонках, а вместо них используют такие структуры, как документные хранилища, хранилища ключей и значений, графы и так далее. Нереляционные базы данных имеют тенденцию быть лучше для данных, которые имеют менее определенную структуру.

Реляционные базы данных намного старше NoSQL. Они доказали свою надежность и безопасность во многих отраслях, в связи с чем было решено использовать именно реляционную базу данных.

SQLAlchemy - это фреймворк для работы, который на практике используется для работы с реляционными базами данных в Python. Поддерживает следующие базы данных: MySQL, PostgreSQL, Oracle, MS-SQL, SQLiteи др. Данная ORM позволяет приложениям управлять базой данных с использованием объектов высокого уровня, таких как классы, объекты и методы, а не таблицы и SQL. Задача ORM - перевести операции высокого уровня в команды базы данных.

После рассмотрения основных элементов структуры программного обеспечения, вернемся к серверной части и рассмотрим её взаимодействие с браузером.

Backend включает в себя код, который исполняется на сервере. Он включает в себя взаимодействие с базами данных^?/, обработку входящих данных. Пользователь работает лишь с внешней частью системы - заполняя некоторую форму и подтверждая вход, клиент отправляет введенные данные на сервер, где они затем, при необходимости, подвергаются обработке и сохраняются в базу данных. Поэтому, когда пользователь снова входит в приложение, вся информация остается на виду, где затем ее можно отредактировать, удалить и выполнить другие действия.

Клиентская часть приложения и сервер взаимодействуют друг с другом с помощью НТТРзапросов и подходаAJAX. Как правило, при этом используется архитектура RESTAP/, которая включает в себя следующие методы:

- GET - запрос данных;

- POST - создание новой записи;

- PUT - обновление данных;

Актуальные проблемы авиации и космонавтики - 2022. Тома 2

- DELETE - удаление данных [4].

В современных веб-приложениях используется AJAX-модель взаимодействия. В фоне браузер создает HTTP запрос к серверу. Сервер получает запрос, обрабатывает и возвращает ответ браузеру. Браузер получает ответ от сервера, как правило в формате JSON, результат отображается на странице без ее перезагрузки. Рассмотрим на рисунке 1 жизненный цикл системы, реализованный в виде одностраничного приложения.

БРАУЗЕР первый зал рос v СЕРВЕР

г ^ html *

пользовательский интерфейс ajax http jjutoc ^ (...kon) вебсервер |_ база данных

Рис. 1. Жизненный цикл одностраничного приложения

В заключении хочется сказать, что в работе была изучена и проанализирована разработка серверной части системы с последующей программной реализацией на языке программирования Python с использованием веб-фреймворка Flask. В качестве системы управления базой данных была выбрана реляционная СУБД - PostgreSQL. Данная серверная часть способна обрабатывать информацию пользователя.

Серверная часть будет включать таблицы, содержащие информацию о районах, маршрутах, объектах посещения и создателях проекта Красноярский Хайкинг, которую добавляет разработчик согласно наработкам организаторов проекта. Таблица «Новости», информирующая о ближайших событиях, будет получать информацию из группы в ВКонтакте «Красноярский Хайкинг» содержащую в себе такую информацию как название мероприятия, описание, дата и время начала, протяженность и продолжительность маршрута, ссылку на регистрацию и стоимость. Таблица «Пользователи» будет включать данные при регистрации пользователя в мобильном приложении.

Библиографические ссылки

1. Центр путешественников [Электронный ресурс]. URL: https://krascp.ru/ (дата обращения:26.01.2022)

2. Клиент-серверная архитектура [Электронный ресурс]. URL:https://qastart.by/class-2/60-klient-servernaya-arkhitektura (дата обращения: 26.01.2022).

3. Flask (веб-фреймворк)[Электронный ресурс]. URL: https://ru.wikipedia.org/wiki/Flask_(веб-фреймворк)(дата обращения: 26.01.2022)

4. Клиент-сервер [Электронный ресурс].Ц^: https://developer. mozil-la.org/ru/docs/Learn/Server-side/First_steps/Client-Server_overview (дата обращения: 26.01.2022)

© Крутько Д. А., 2022

i Надоели баннеры? Вы всегда можете отключить рекламу.