Разработка веб-сайта на основе технологий Python и Django
Автор: Кудуев А.Ж., Адилбекова Н.А., Ормош уулу Э., Чжао Ямэн
Журнал: Бюллетень науки и практики @bulletennauki
Рубрика: Технические науки
Статья в выпуске: 5 т.12, 2026 года.
Бесплатный доступ
Рассматривается процесс разработки веб-сайта с использованием языка программирования Python и веб-фреймворка Django. Актуальность темы обусловлена растущей потребностью в создании масштабируемых и безопасных веб-приложений в условиях современного рынка. Целью работы является анализ архитектурных особенностей Django и демонстрация практической реализации веб-проекта. В качестве методологии исследования используется анализ литературных источников и экспериментальное проектирование. В статье подробно описаны ключевые компоненты Django: модели (Models), представления (Views), шаблоны (Templates) и маршрутизация (URLs). Особое внимание уделяется реализации CRUD-операций и использованию объектно-реляционного отображения (ORM) для взаимодействия с базами данных на примере PostgreSQL. Результатом работы является создание прототипа веб-сайта — электронной доски объявлений. В заключении сформулированы выводы о преимуществах использования Django для веб-разработки и даны рекомендации по оптимизации производительности готовых решений.
Python, Django, веб-разработка, фреймворк, ORM, базы данных, PostgreSQL, CRUD, HTML, шаблонизация
Короткий адрес: https://sciup.org/14135635
IDR: 14135635 | УДК: 004.738.5:004.43 | DOI: 10.33619/2414-2948/126/20
Development of a Website Based on Python and Django Technologies
Discusses the process of developing a website using the Python programming language and the Django web framework. The relevance of the topic is due to the growing need for creating scalable and secure web applications in the modern market. The aim of the work is to analyze the architectural features of Django and demonstrate the practical implementation of a web project. The research methodology includes the analysis of literary sources and experimental design. The article describes in detail the key components of Django: Models, Views, Templates, and URLs. Special attention is paid to the implementation of CRUD operations and the use of Object-Relational Mapping (ORM) for interacting with databases using PostgreSQL as an example. The result of the work is the creation of a prototype website—an online bulletin board. The conclusion formulates findings on the advantages of using Django for web development and offers recommendations for optimizing the performance of finished solutions.
Текст научной статьи Разработка веб-сайта на основе технологий Python и Django
Бюллетень науки и практики / Bulletin of Science and Practice
УДК 004.738.5:004.43
В современном мире веб-технологии проникли во все сферы человеческой деятельности. От малого бизнеса до крупных корпораций — все стремятся иметь представительство в сети интернет. Спектр веб-сайтов огромен: от простых статичных страниц-визиток до сложных высоконагруженных порталов и интернет-магазинов. Выбор правильного инструмента для разработки является критическим фактором, влияющим на успех проекта, его стоимость, скорость вывода на рынок и простоту дальнейшей поддержки [3].
Язык программирования Python зарекомендовал себя как мощный и гибкий инструмент, который благодаря своей простоте и читаемости кода позволяет быстро создавать работающие прототипы и сложные программные комплексы. Одним из главных преимуществ Python в области веба является наличие зрелых и активно развивающихся фреймворков. Среди них особое место занимает Django — высокоуровневый фреймворк, который следует принципу "Don't Repeat Yourself" (DRY) и предоставляет разработчику практически всё необходимое «из коробки» .
Понимание архитектуры и принципов работы Django необходимо современному вебразработчику для создания эффективных и безопасных решений.
Материал и методика
Теоретической базой исследования послужили научные статьи, посвященные вебразработке, техническая документация, а также специализированная литература по фреймворку Django [2, 3, 6].
Для достижения поставленной цели — демонстрации процесса разработки веб-сайта — был использован метод экспериментального проектирования. В качестве инструментария выступили: язык Python версии 3.11, фреймворк Django 5.1, система управления базами данных PostgreSQL и среда разработки PyCharm.
В ходе работы был спроектирован и реализован прототип веб-сайта — доска объявлений. Данный выбор обусловлен тем, что подобный проект позволяет охватить типовые для большинства веб-приложений задачи: работа с пользователями, создание, отображение и редактирование контента (CRUD), а также взаимодействие с базой данных.
Результаты и их обсуждение
Разработка на Django базируется на архитектурном паттерне Model-View-Template (MVT), который является вариацией классического MVC (Model-View-Controller). Рассмотрим каждый компонент в контексте разрабатываемого приложения «Доска объявлений».
Модели (Models) — это единственный, авторитетный источник информации о ваших данных. Она содержит все поля и поведение данных, которые вы храните. Django следует философии "DRY", позволяя определить модель данных в одном месте и автоматически генерировать на её основе миграции для базы данных. Для нашего проекта были созданы две основные модели: Category (категория) и Ad (объявление).
Модель Ad содержит поля для заголовка, текста объявления, цены, изображения, а также внешние ключи для связи с категорией и пользователем.
Листинг 1. Пример моделей для приложения "Доска объявлений"
name = models.CharField('Название категории', max_length=100)
slug = models.SlugField(unique=True)
def __str__(self):
verbose_name = 'Категория'
verbose_name_plural = 'Категории'
title = models.CharField('Заголовок', max_length=200)
description = models.TextField('Описание')
price = models.DecimalField('Цена', max_digits=10, decimal_places=2)
image = models.ImageField('Фото', upload_to='ads/%Y/%m/%d', blank=True)
category = models.ForeignKey(Category, on_delete=models.CASCADE, verbose_name='Категория')
author = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='Автор')
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
verbose_name = 'Объявление'
verbose_name_plural = 'Объявления'
ordering = ['-created_at']
Представления содержат логику обработки пользовательского запроса. Они взаимодействуют с моделями для получения данных и передают их в шаблоны для отображения. Django поддерживает как функциональные, так и классовые представления. Для проекта использование классового представления ListView для отображения списка объявлений позволило сократить количество шаблонного кода.
paginate_by = 10
def get_queryset(self):
"""Возвращает объявления, отфильтрованные по категории, если параметр slug передан в URL."""
queryset = super().get_queryset()
if category_slug:
return queryset
Шаблоны в Django отвечают за представление данных. Они пишутся на HTML и содержат специальные теги шаблонизатора Django для вставки динамического контента [1, 8].
В проекте для создания интерфейса использовался Bootstrap 5 для обеспечения адаптивности и современного внешнего вида. Шаблоны наследуются от базового файла base.html, что позволяет избежать дублирования кода (принцип DRY). Маршрутизация (URLs) URL-адресов Django позволяет создавать чистые, понятные адреса без расширений файлов. Сопоставление URL с представлениями происходит с помощью регулярных выражений или специальных конвертеров путей. Для приложения были определены маршруты для главной страницы, страницы со списком объявлений по категориям и страницы детального просмотра объявления.
]
Для реализации возможности добавления и редактирования объявлений были использованы формы Django, связанные с моделью (ModelForm). Это автоматически создает HTML-формы на основе модели, генерирует поля и обеспечивает базовую валидацию данных. В сочетании с классовыми представлениями CreateView и UpdateView процесс создания таких страниц занимает минимум времени и кода, что является одним из ключевых преимуществ Django .
После реализации базового функционала была проведена первичная оценка производительности с помощью встроенных инструментов Django и стандартных метрик, таких как время генерации страницы и количество запросов к базе данных. Для главной страницы, выводящей 10 объявлений, количество запросов к БД было минимальным. Однако, на странице детального просмотра объявления возникла проблема "N+1 запроса" при отображении данных автора, которая была решена с помощью метода select_related() в представлении, что позволило объединить запросы и значительно ускорить загрузку страницы [2, 4].
В ходе выполнения работы была достигнута поставленная цель: разработан прототип веб-сайта «Доска объявлений» на базе Python и Django, проанализированы ключевые архитектурные компоненты фреймворка. Полученные результаты позволяют сделать следующие выводы:
Django предоставляет мощный и структурированный подход к веб-разработке, который благодаря встроенной ORM, админ-панели и системе шаблонов позволяет сосредоточиться на бизнес-логике приложения, а не на рутинных операциях.
Архитектура MVT способствует созданию чистого, поддерживаемого и масштабируемого кода.
Правильное использование инструментов Django, таких как классовые представления и select_related, критически важно для обеспечения высокой производительности готового продукта.
Выбор Django в качестве основы для проекта оправдан для создания широкого класса веб-приложений — от сайтов-визиток до сложных корпоративных порталов и интернет-магазинов.
Дальнейшее развитие работы может быть направлено на добавление асинхронных компонентов с помощью Django Channels для реализации реального времени (например, чатов между пользователями), а также на проведение более глубокого нагрузочного тестирования.