Pull to refresh

Мой набор для Django

Level of difficultyEasy
Reading time3 min
Views337

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

Django-Loaddata-Streamed

Замучившись искать хост с достаточным объемом памяти для загрузки больших фикстур, нашел подходящую библиотечку стриминга JSON и прикрутил к сериализатору. Теперь вы можете загрузить JSON фикстуру любого объема прямо на домашней тачке.

Django2-Postgres-Backport

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

Django-TSSO

В последнее время, стало модно использовать концепцию SSO - Single Sign On. Выпущенный недавно стандарт мало кем пока поддерживается, поэтому пришлось изобрести упрощенный протокол, использующий текущие реализации OAuth2, и реализовать его на основе пакета Python-Social-Auth. Путем небольшого расширения, получился вполне пригодный к применению вариант, который я назвал TSSO - Transparent Single Sign On.

Django-Access

Управление доступом к отдельным записям БД, основанное на динамических вычислениях прав. Я уже рассказывал (и вот здесь еще) детально об этом пакете раньше, здесь отмечу, что он продолжает эксплуатироваться и периодически обновляется для совместимости с последними версиями Django и Python. Для сопряжения с Tastypie и DRF, можно использовать отдельные пакеты, читайте документацию.

Django-Scalable

Для работы в облаке, нужно как-то распределять обработку больших массивов записей среди многих узлов. Мой опыт такого распределения воплощен в этом пакете.

Django-Leaflet-Admin-List

Несмотря на то, что пакет LeafletJS несколько устарел, он все равно живой, а с помощью этого пакета, использующего LeafletJS, можно отобразить геообъекты из страницы списка объектов.

Django-Taggit-Bulk

Если вы используете пакет Django-Taggit, с помощью данного пакета, вы можете быстро привернуть пакетные операции по тегированию своих объектов из админки.

Django-Import

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

Django-JSONEditor

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

Django-Unlimited-Char

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

Django-Storage-Celery-Results

Теперь можно хранить результаты вычислений заданий Celery в любом облаке, которое поддерживается пакетом Django-Storages. Тормозновато, зато универсально и неограниченно масштабируемо. Впрочем, пока не нашло применений в текущих проектах.

Заключение

Напишите в комментариях, про какой пакет нужно рассказать подробнее. Если нашли ошибку в пакете - отправляйте issue или PR с исправлением прямо в репозиторий, я стараюсь реагировать быстро.

Tags:
Hubs:
0
Comments0

Articles