Как стать автором
Обновить
5.87
Рейтинг

Django *

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

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

Новости

Фильтр по интервалу дат в админке Django

Django *

В текущем проекте появилась потребность фильтровать таблицы в админке Django по условию "от такой-то даты/времени до такой-то даты/времени". К моему удивлению, для такой расхожей задачи при беглом поиске подходящих готовых решений найти не удалось. Может плохо искал, напишите в комментах.

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

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 855
Комментарии 4

Celery: проясняем неочевидные моменты

Python *Django *
Перевод

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

Мотивацией перевести эту статью были следующие вопросы, на которые я не знал ответа: при запуске создается процесс или поток? В какую очередь попадают отложенные задачи с ETA? А какие бывают очереди (спойлер: она не одна)? А в какой момент задача удаляется из очереди? Если я создам задачу с ETA=завтра_в_12:00, она ровно в этот момент и выполнится (спойлер: нет)?

Ответы на все эти вопросы в статье, велком!

Запустить таску
Всего голосов 8: ↑6 и ↓2 +4
Просмотры 2.8K
Комментарии 12

Асинхронный django: status update

Python *Django *

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

Проект называется vinyl. У него есть репозиторий. Пользоваться им можно и нужно! Про то, как это делать, можно узнать из README - я думаю, всё вполне соответствует ожиданиям от асинхронной версии. Здесь я хочу рассказать про то, что, как говорится, удалось узнать в процессе.

Сейчас vinyl - только асинхронный фреймворк, но первая версия такой не была, она поддерживала как синхронный, так и асинхронный I/O. API асинхронной версии было зеркальным отражением синхронной. Мне всегда было интересно, почему нельзя так сделать - и вот попробовал сам. Как оказалось, это возможно, и относительно нетрудно, особенно, если все операции выполняются последовательно, как в django orm.

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 1.2K
Комментарии 6

Аутентификация в Django при помощи Metamask

Python *Django *

Сегодня мы напишем простой сниппет для аутентификации пользователей на сайте при помощи кошелька Metamask. Замечу, что данное решение максимально изолировано от фреймворка. Вы сможете легко адаптировать его не только к Django, но и к Flask, Sanic, Starlette, Aiohttp и т.п.

Читать далее
Всего голосов 3: ↑1 и ↓2 -1
Просмотры 2.5K
Комментарии 3

Необычный Python в обычных библиотеках

Блог компании SkillFactory Python *Программирование *Django *
Перевод


Специалист в Data Science из Amazon буквально прочитал код самых распространённых библиотек Python. В этом материале он делится секретами работы с Python, о которых узнал из этих библиотек. За подробностями приглашаем под кат к старту нашего флагманского курса по Data Science:

Узнать больше
Всего голосов 12: ↑9 и ↓3 +6
Просмотры 7.6K
Комментарии 9

Django и PWA

Python *JavaScript *Django *HTML *
Из песочницы

Всем привет! Гуляя по Хабру, мне ни разу не доводилось обнаружить статью на тему Django + PWA. А ведь тема интересная (лично мне пришлось потратить 4 дня на то, чтобы с ней разобраться). И дабы сэкономить ваше время, в данной статье я попытался представить достаточно простой способ для создания прогрессивного веб приложения (PWA) вместе с Django без сторонних библиотек.

Читать далее
Всего голосов 6: ↑4 и ↓2 +2
Просмотры 7K
Комментарии 30

Как стажёр оптимизировал запросы и нашел баг в Django

Блог компании KTS Python *Django *

Недавно я нашел баг в Django, создал тикет с исправлением и его приняли.

В статье расскажу подробнее — над чем работал, в чем была ошибка и почему ее сложно встретить. А также еще про один баг, который по классике оказался фичей 😊.

Читать далее
Всего голосов 33: ↑33 и ↓0 +33
Просмотры 17K
Комментарии 10

Как мы платежный шлюз тестируем

Блог компании QIWI Python *Django *Тестирование веб-сервисов *Микросервисы *

Всем привет! Сегодня мы поговорим об интеграционном тестировании платежного шлюза, но перед этим расскажу немного про нашу команду и наш проект. Мы (ContactPay) — самостоятельный финтех-стартап внутри QIWI, строим высокопроизводительный отказоустойчивый платежный шлюз и соответствуем стандартам безопасности PCI DSS. 

Как платежный шлюз мы интегрированы со множеством внешних API, это могут быть и платежные системы, и сторонние сервисы мониторинга, антифрода, KYC (know your customer) и так далее. 

Как финтех — работаем с большим количеством финансовых данных, и нам важны и сохранность, и консистентность и безопасность данных. Исходя из требований к нашему продукту у нас есть высокие требования к нашему коду, поэтому мы определили критичные для нашего проекта метрики кода и стараемся поддерживать их на высоком уровне.

Мы стараемся писать корректный код с наименьшим количеством  багов. Код должен быть читаемым, самодокументируемым и поддерживаемым. Кроме того, он должен быть безопасным, так как мы  финтех и у нас PCI DSS, это накладывает определенные требования к безопасности. А ещё код должен быть тестируемым. 

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

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

Читать далее
Всего голосов 13: ↑13 и ↓0 +13
Просмотры 3.3K
Комментарии 0

Выгрузка отфильтрованных пользователем данных из таблицы в админке Django

Python *Django *

Генерал Венделер обладал редким даром излагать свои решения в краткой, ясной и доходчивой форме. (С) х/ф "Приключения принца Флоризеля."

Коллега обратился с запросом.

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

Сайт сделан на админке Django. Будем реализовывать это лапидарное ТЗ от коллеги.

Поехали
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 1.4K
Комментарии 6

Pet-проект для обучения или как я в одиночку писал Helpdesk

Разработка веб-сайтов *Python *Django *Help Desk Software *Учебный процесс в IT
Из песочницы

Ранее, у меня уже был опыт использования Helpdesk систем, но по разным причинам они не были внедрены у нас на предприятии. Хорошая возможность научится программировать, подумал я, и преступил к написанию собственного helpdesk’a.

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 14K
Комментарии 28

Все не то, давай по-новой или модерация объектов в Django Rest Framework

Разработка веб-сайтов *Python *Django *
Tutorial

— Ты не работал с пакетом django-moderation? И если нет, были ли у тебя задачи по модерации объектов, а конкретно: пользователь предлагает изменения, а другой пользователь либо отклоняет, либо принимает их?

— Не, не делал такого. Вот я все таки ох обескуражен от твоих занятий. Зачем такое вообще нужно?

... как всегда вырвано из контекста.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 2.2K
Комментарии 0

О том, как в питоне без протокола и задеплоить приложение не могут. Смешиваем ASGI с WSGI — вредные советы

Разработка веб-сайтов *Python *Django *

Как должны выглядеть современные сервисы на питоне, многие имеют представление. Все они, так или иначе, имеют поддержку асинхронных операций. А вот, как их лучше деплоить? Здесь некоторые руководства (как FastAPI) отвели целый раздел для рекомендаций, а некоторые (как Django) ограничились несколькими абзацами с крайне размытыми формулировками. Мне не посчастливилось следовать именно последнему.

Прочитав эту статью, Вы, возможно, захотите внести изменения в докерфайлы Ваших сервисов. Благодаря протоколам WSGI и ASGI, это можно сделать без особого труда. Именно поэтому все изложенные в статье советы - вредные. Также, Вы узнаете о nginx unit - ещё об одном годном сервере приложений.

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 2.7K
Комментарии 5

Умная кухня

Блог компании X5 Tech Анализ и проектирование систем *Django *IT-инфраструктура *ERP-системы *

IT в помощь готовой еде.

Любому руководителю важна информация, отражающая скорость и качество работы области, за которую он отвечает. В 2020 году мы в Х5 Tech начали поддерживать производство готовой еды Smart Kitchen («Фабрика кухни») и изучать его внутренние процессы. Оказалось, что руководители поздно получают важную для бизнес-процессов информацию. К примеру, отчёты о сроках отгрузки или списанных позициях IT-платформа считает лишь к середине или даже концу следующего дня.

Читать далее
Всего голосов 2: ↑1 и ↓1 0
Просмотры 3.1K
Комментарии 12

Парсинг для взрослых или Инфраструктура для промышленного парсинга

Python *Django *Data Mining *Data Engineering *
Из песочницы
Tutorial

В студенческие годы я написал на заказ много парсеров магазинов и социальных сетей. Со временем парсеры усложнялись и из скриптов превращались в полноценные веб-приложения c базой данных и Rest API. В статье описан шаблон веб-приложения, который использую для создания парсеров.

Читать далее
Всего голосов 13: ↑9 и ↓4 +5
Просмотры 10K
Комментарии 12

История одного CRUD'а

Разработка веб-сайтов *JavaScript *Django *Управление разработкой *VueJS *

В 2015 году, когда я пришёл на своё текущее место работы, мне было непривычно от необыкновенной свободы действий. Буквально, на новом месте можно было проявить весь творческий потенциал как DevOps-евангелиста. Мне нравилось выстраивать процессы, автоматизировать рутину, делать разработку удобной. Больше всего я люблю оптимизации, а больше всего ненавижу - рутину.

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

Читать это всё...
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 5.5K
Комментарии 8

Асинхронный django — status update. Проект vinyl

Python *Django *

Всем привет.

Некоторое время назад я писал про альтернативные возможности, как можно добавить в django асинхронность (есть официальный подход, изложенный в DEP-09). С тех пор у меня получилось оформить свои идеи в нечто относительно цельное, что вылилось в vinyl project. Описание проекта читайте на гитхабе, здесь же я хочу рассказать о его интересных особенностях.

Проект родился после нескольких предыдущих попыток, когда я узнал, что django, в действительности, очень неплохо расширяем. Например, он поддерживает использование нескольких баз данных одновременно (притом что модели одни и те же). Соответственно, например, ничего не мешает считать использование асинхронного драйвера как использование другой логической базы данных - чем я и воспользовался.

Читать далее
Всего голосов 10: ↑8 и ↓2 +6
Просмотры 2.2K
Комментарии 1

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

Python *Django *ReactJS *Контекстная реклама *Криптовалюты

Для того чтобы получить полезный трафик не обязательно платить за размещение рекламных постов и баннеров на сторонних площадках и тратить на это значительную часть своего рекламного бюджета. Уже давно вошли в моду системы лояльности, которые позволяют финансово вознаграждать своих пользователей за активность в приложении. Это своего рода внутренний арбитраж трафика: мы закупаем активность своих же пользователей в обход посредников. Чтобы это реализовать потребуется несколько часов свободного времени и капелька желания.

Читать далее
Рейтинг 0
Просмотры 2K
Комментарии 0

Анонимизация базы данных или как быть уверенным, что ты не нарушаешь закон “О персональных данных”

Разработка веб-сайтов *Python *Программирование *Django *Хранение данных *
Из песочницы

В настоящее время практически все ИТ-продукты работают с персональной информацией пользователя: ФИО, телефон, e-mail, паспортные и другие идентифицирующие данные. Для  обеспечения защиты прав и свобод, человека и гражданина при обработке его персональных данных в Российской Федерации существует Федеральный закон от 27.07.2006 N 152-ФЗ “О персональных данных”.

Согласно пункту 2 статьи 5 обработка персональных данных должна ограничиваться достижением конкретных, заранее определенных и законных целей, а в статье 6 установлено, что обработка персональных данных осуществляется с согласия субъекта персональных данных. Все это накладывает определенные ограничения на разработку программных продуктов и заставляет разработчиков думать о возможных последствиях несоблюдения норм законодательства.

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

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

Читать далее
Всего голосов 14: ↑11 и ↓3 +8
Просмотры 9.7K
Комментарии 5

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

Работа