Как стать автором
Обновить
5.87

Django *

Фреймворк для веб-приложений на Python

Сначала показывать
Порог рейтинга
Уровень сложности

Всё, что вы хотели знать о Django Channels

Время на прочтение10 мин
Количество просмотров4K

Приветствую, друзья!

Когда я впервые начал работать с Django, меня всё устраивало, за исключением одного момента: как сделать так, чтобы приложение могло общаться с пользователем в реальном времени? Веб-сокеты, уведомления, асинхронные запросы — казалось, это точно не про чистый Django. Но затем я наткнулся на Django Channels, и многое изменилось. Channels позволили мне сделать приложение асинхронным, добавить поддержку веб-сокетов и превратить его во что-то гораздо более крутое.

В этой статье я расскажу, как работать с Django Channels.

Читать далее

Встроенные механизмы безопасности фреймворков Python

Время на прочтение10 мин
Количество просмотров3.1K

Проводя аудиты процессов разработки ПО, мы часто слышим, что функционал реализован во фреймворке, и это может вызывать вопросы со стороны специалистов по информационной безопасности. 

Python, будучи одним из популярных языков программирования, предлагает множество фреймворков, каждый из которых должен быть защищен и иметь встроенные механизмы безопасности либо возможности для встраивания этих механизмов. В этой статье попробуем разобраться, какие возможности действительно предоставляют фреймворки, рассмотрим механизмы безопасности и способы их настройки на примере распространенных фреймворков: Django, FastAPI и Flask.

Читать далее

Практика реализации Веб-ГИС приложений и сервисов на основе открытых ресурсов. Начало

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров1.9K

Идея спасти мир и при этом заработать немного шекелей витала у меня в голове уже давно. Имея неплохой накопленный опыт в области геоинформационных систем и защитивши в свое время диссертацию с их применением мне не хватало знаний разработчика. Окончив IT-курсы и получив доступ к "Святому Граалю знаний" я понял, – пора, и завертелось! Летом 2024 года мы в составе команды "Arrow" одержали победу, заняв третье место в хакатоне "Лидеры цифровой трансформации" и вошли с нашим проектом в топ-100, став резидентами "Академии инноваторов" у нас появился свой стартап.

Общая идея такова. "Arrow" – это платформа для анализа и обработки спутниковых снимков, использующая технологии машинного обучения и нейросетей для мониторинга окружающей среды, строительства и природопользования. Наш продукт помогает бизнесу и государственным структурам автоматизировать выявление экологических нарушений и незаконных построек, обеспечивая более точное и своевременное реагирование. Это в «розовом» будущем, а пока это только проект «Мобильное приложение для управления антропогенной нагрузкой на особо охраняемых природных территориях Камчатского края», занявшее призовое место, хотя и этот результат тоже когда-то был только в мечтах.

Я хочу открыть целый цикл статей в котором постараюсь осветить историю жизненного цикла нашего проекта "Arrow", которая будет писаться на ваших глазах. Здесь будет все: и фронт и бэк и мобильная разработка, будет и деплой в облако. В этих статьях ("Путь к стартапу: от хакатона до акселератора"), которые к стати буду писать не только я, но и ребята с моей команды, мы хотим осветить все начиная от создания MVP (минимально жизнеспособный продукт) и заканчивая выводом проекта в продакшн, анализ целевой аудитории и поиск первых клиентов, привлечение первых инвестиций, подбор команды, в общем все этапы через которые нам предстоит пройти для достижения своей цели, - получения интересного и востребованного продукта. Начнем же…

Читать далее

Что изменилось в open source-альтернативе TestRail. От кастомных статусов и атрибутов до bulk-операций

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров2K

Привет! Я Александр Зырянов, проектный менеджер TestY и QA-менеджер в департаменте контроля качества YADRO. Тест-менеджмент системе TestY, которая доступна в open source любой команде и компании, скоро два года. Мы готовим крупный релиз 2.0 с масштабными изменениями, в том числе дизайна интерфейса.

А пока в качестве «аппетайзера» я расскажу про последние обновления к релизу 1.3.4. Среди них — bulk-операции, пуш-уведомления пользователей, доработка кастомных атрибутов и статусов. Подробнее о каждом — под катом. Устанавливайте TestY и испытайте в работе нашу открытую систему. 

Читать далее

Истории

От REST к GraphQL: эволюция управления данными в Wagtail

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров2.1K

В системах управления контентом (или CMS) часто приходится работать с огромными и постоянно меняющимися массивами данных. Так что оптимизация производительности уже не роскошь, а необходимость.

Привет! Я Олег, Python-разработчик в Kokoc Group, и сегодня расскажу, как ускорить работу с данными в CMS Wagtail и сделать разработку проще и приятнее с помощью GraphQL и Graphene. В статье разберу реальные примеры и покажу процесс настройки конкретной системы.

Читать далее

Нотификации в telegram о падении приложения, через графану

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров1.7K

Это не анонсированная третья часть. Первые две здесь:

1. Подготовка Django приложения для локальной разработки и деплоя

2. Django приложение в докере. Логирование и мониторинг (тоже в докере)

Не анонсированная, потому что этот способ подходит для любого приложения с метриками через Prometheus, но как настраивать их для конкретного Django приложения можно посмотреть в предыдущих частях.

Читать далее

Инструмент django-command

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров2.2K

Django-command - инструмент командной строки, который позволяет выполнять часто используемые команды при разработке проектов на фреймворке Django. Данный инструмент помогает повысить эффективность разработки и упростить рабочие процессы, связанные с веб-приложениями на Django.

Читать далее

Django приложение в докере. Логирование и мониторинг (тоже в докере)

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров2K

Обещанная вторая часть. Первая часть здесь.

Основной идеей было настроить все с минимальным количеством ручных действий для работы легирования и мониторинга.

Одно ручное действие все же потребуется — указать хост (или ip), по которому Prometheus будет собирать метрики. В остальном все заработает просто по docker-compose up.

Читать далее

Подготовка Django приложения для локальной разработки и деплоя

Время на прочтение3 мин
Количество просмотров2.2K

Поговорим про настройку приложения для двух сред «разработки» local и условного прода. Локально приложение будет запускаться с установкой всего необходимого на компьютер, то, что дальше я буду именовать продом будет представлять из себя запуск через docker-compose.

Что это за приложение по сути значения не имеет, из особенностей — там будет celery поверх redis и Postgres, как персистентное хранилище. Код приложения можно посмотреть здесь.

Настроим переменные окружения для двух разных сред и подготовим код под это.

Настроим логирование через Loki и Grafan-у. Настроим мониторинг через Prometheus в ту же Grafan-у.

Поехали

Полноценный API на Django REST Framework: легкая разработка, автодокументация и быстрый деплой

Уровень сложностиПростой
Время на прочтение17 мин
Количество просмотров12K

Сегодня мы погрузимся в процесс создания собственного API на Django с использованием мощного инструмента — Django REST Framework (DRF). Этот фреймворк предоставляет полный набор инструментов для разработки API: маршрутизация, сериализация данных, обработка запросов и формирование ответов. DRF значительно упрощает взаимодействие с клиентами через HTTP, поддерживая такие методы, как GET, POST, PUT и DELETE.

Однако, в отличие от FastAPI, Django REST Framework не включает встроенный инструмент для автодокументирования API. Мы легко решим эту задачу, воспользовавшись расширением drf‑spectacular, которое генерирует спецификации API в формате OpenAPI 3.0. Это позволит интегрировать интерфейсы, такие как Swagger и Redoc, для удобного тестирования и наглядной визуализации документации.

Читать далее

Django 5: асинхронный бекенд и эффектный фронтенд с минимальными затратами времени

Время на прочтение17 мин
Количество просмотров7.9K

Приветствую, друзья!

Уже давно у меня возникала мысль подробно, как в случае с FastAPI и Aiogram 3, разобрать «суровый» Django 5. Однако, из-за большого дефицита свободного времени и масштабности Django, руки до этого не доходили. Сегодня, как вы уже поняли, момент настал.

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

Сегодня мы создадим простой сайт, который будет демонстрировать гороскоп на завтра для любого знака зодиака. Чтобы было интереснее, гороскоп будем парсить в момент обращения к знаку зодиака (об этом подробнее далее).

Читать далее

Автотесты на Django: менеджмент данных тестирования на монолите

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров2.4K

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

Читать далее

Часть 2.5. TMA на KMP. Аутентификации пользователя с DRF

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.1K

Эта короткая статья является дополнением ко второй, но можно прочить независимо, если требуется только реализация серверной части аутентификации.

Читать далее

Ближайшие события

Как вкусно приготовить «Сельдерей» (Celery)

Уровень сложностиСложный
Время на прочтение8 мин
Количество просмотров5.1K

Celery можно любить или не любить, но избежать работы с ним практически невозможно. Однако, не все инженеры задумываются о том, что происходит в момент вызова Celery задач. И в этой статье я хочу рассказать, как именно происходит вызов и отправка сообщения, к чему может привести игнорирование того, что Celery под собой имеет транспорт, и что может произойти, если этот транспорт начнет сбоить.

Читать далее

Система оценивания для проведения экзаменов, срезов в СПО

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров1.3K

Привет всем! Сегодня я расскажу вам о моей системе оценивания, которая создана для проведения экзаменов и оценки знаний студентов. Система построена на Django Rest Framework (DRF) для бэкенда и React с MaterialUI для фронтенда. Я добавил множество полезных функций, включая интеграцию с ISPmanager, которые делают систему удобной и эффективной.

Читать далее

ХрюХрюКар: как перестать беспокоиться, начать создавать сервисы и обзавестись друзьями

Уровень сложностиПростой
Время на прочтение28 мин
Количество просмотров8.4K

Привет, Хабр!

Мы хотели научиться создавать сервисы от момента возникновения идеи и до этапа эксплуатации, попутно освоив новые технологии.
В итоге получился экспериментальный проект "ХрюХрюКар" — сервис для борьбы с неправильной парковкой, работающий под лозунгом "Хорошие ребята говорят 'Bla-Bla' и не ставят машину на зелёной зоне".

В этой статье мы расскажем, как выбирали проект, на решение каких задач нацелен "ХрюХрюКар", какие технологии мы использовали, какие трудности возникали и что получилось в итоге.

Ну и поделимся всеми исходниками, конечно.

Припарковаться правильно

Оптимизация запросов к БД на django

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров6.2K

Стоит ли использовать django в 2024? Я думаю — да. DRF очень удобен, скорость разработки очень высока (особенно, если использовать generic views, django‑filters), огромное количество готовых батареек сильно облегчает жизнь и встроенная админка хорошо подходит для большинства сайтов. Полностью асинхронные фреймворки (или переход на другой язык) не дадут большого выиграша, если ваш сервис много работает в БД — вы упретесь в её производительность и ограничения количества соединений с пулом бд. Далее я вкратце пробегусь по основным моментам и дам ссылки на документацию и готовые батарейки.

Читать далее

Как настроить уведомления в Django с помощью сигналов: пошаговое руководство

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров5.6K

В Django сигналы используются для отправки и получения важной информации при сохранении, изменении или даже удалении модели данных и это относится к определенным прошлым или настоящим событиям в реальном времени. Сигналы помогают нам связывать события с действиями. Меня зовут Ясин, я младший разработчик Python в Kokoc Group, работаю чуть больше года. Изучаю и использую в работе фреймворки Django и FastAPI. Сегодня покажу пример, как можно эффективно использовать сигналы, но ожидаю, что вы имеете базовые представления о Python 3, виртуальной среде и настройке проекта Django  версии 3 или выше. Поехали!

Читать далее

Обратная сторона умного поиска заказов

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров848

Всем привет, меня зовут Иван Елфимов, я Developer Advocate в Островке. До DevRel-ства я 5 лет руководил командой разработки партнёрских интеграций. 

Мы в Островке создаём платформы бронирования тревел-услуг не только для индивидуальных путешественников, но и для корпоративных клиентов и тревел-агентств — наших B2B-партнёров.

У B2B-партнёров может быть много клиентов и бронирований. По каждому бронированию нужна подробная информация — стоимость, комиссия, статус оплаты, кто основной гость и т. д. Всем этим наши партнёры управляют в личном кабинете. Я расскажу вам, как мы подключали в личном кабинете B2B-партнёров умный поиск по заказам. Умный, потому что может подстраиваться под поисковый запрос и иногда даже делать полнотекстовый поиск.

Узнать, как править всеми

Pandas — НЕ для анализа данных (Используем Pandas для server-side рендеринга html)

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров12K

В среде питонистов библиотека Pandas пользуется большой популярностью и по большей мере известна в контексте DataSciense и анализа данных. DataFrame пандас позволяет не только всячески манипулировать данными, но и выводить их в нужном формате, предоставляя широкие возможности для кастомизации. Например, использовали ли вы объекты класса Styler, входящего в состав Pandas? Мне показалось интересным взглянуть на Pandas с этой стороны.

Читать далее

Вклад авторов

Работа