Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для URL, имени файла, имени объекта в каком-то софте и тд. Требования совместимости простые: в тексте должны быть только допустимые символы. Обычно это a-z, 0-9 и "_" или "-". То есть, только прописные буквы латинского алфавита и цифры (как пример).
Допустим, нам нужно название статьи в блоге преобразовать в slug для добавления его в URL этой статьи. Как это лучше всего сделать?
В Django по умолчанию есть готовая функция slugify для таких случаев.
Но я её никогда не использую. Почему? Потому что её недостаточно!
Приведём пример
>>> from django.utils.text import slugify
>>> slugify('This is a Title')
'this-is-a-title'
Пока всё отлично
>>> slugify('This is a "Title!"')
'this-is-a-title'
Спец символы удалились, всё хорошо.
>>> slugify('Это заголовок статьи')
''
Вот и приехали 😢. Если текст не английский то буквы просто игнорируются. Можно это поправить
>>> slugify('Это заголовок статьи', allow_unicode=True)
'это-заголовок-статьи'
Но тогда мы не вписываемся в условие. У нас появилась кириллица в тексте.
Так как я часто пишу сайты для русскоязычных пользователей эта проблема весьма актуальна. Я не использую стандартную функцию и всегда пишу свою.
Оригинал я не беру в расчёт и пишу полностью свою функцию. И так, по порядку:
🔸1. Исходный текст:
>>> text = 'Мой заголовок №10 😁!'
Взял специально посложней со специальными символами.
🔸2. Транслит
Необходимо сделать транслит всех символов в латиницу. Здесь очень выручает библиотека unidecode. Помимо простого транслита кириллицы в латиницу она умеет преобразовывать спец символы и иероглифы в текстовые аналоги.
from unidecode import unidecode
>>> unidecode("Ñ Σ ® µ ¶ ¼ 月 山")
'N S (r) u P 1/4 Yue Shan'
Очень крутая библиотека, советую👍
В нашем случае получаем такое преобразование:
>>> text = unidecode(text)
>>> print(text)
'Moi zagolovok No. 10 !'
Отличный транслит. Смайл просто удалился, хотя я ждал что-то вроде :). Ну и ладно, всë равно невалидные символы.
А еще наш код уже поддерживает любой язык, будь то хинди или корейский.
🔸4. Фильтр символов
Unidecode не занимается фильтрацией по недопустимым символам. Это мы делаем в следующем шаге через regex. Просто заменим все символы на "_" если они вне указанного диапазона.
>>> text = re.sub(r'[^a-zA-Z0-9]+', '_', text)
>>> print(text)
'Moi_zagolovok_No_10_'
Символ "+" в паттерне выручает когда несколько недопустимых символов идут рядом. Все они заменяются на один символ "_".
🔸5. Slugify
Осталось удалить лишние символы по краям и сделать нижний регистр
>>> text = text.strip('_').lower()
>>> print(text)
'moi_zagolovok_no_10'
Получаем отличный slug! 😎
🌎 Полный код в виде функции.
______________
PS. Проверку что в строке остался хоть один допустимый символ я бы вынес в отдельную функцию.
#libs#tricks#django
Дирижабли можно запускать как в помещении, так и на открытом воздухе, и они идеально подходят для:
- Концертов
- Торговых центров
- Корпоративных мероприятий
- Свадеб
- Дней рождений
- Городских праздников
С #Dronico ваше мероприятие станет уникальным, а атмосфера надолго запомнится гостям.
Дроны могут летать как в помещении на любых площадках, так и на открытом воздухе при отсутствии сильного ветра, тумана и дождя, создавая потрясающее шоу для зрителей. И самое главное – безопасно!
Например, можно делать QR-коды из дронов. Артист на сцене может выступать со светящимися фигурами, чтобы придать своему шоу иммерсивности. Или вы можете поздравить дорогого вам человека таким необычным способом!
Оставьте заявку и подарите себе лучшие моменты ❤️
dronico.ru
@DRONICO
Новогодние каникулы в Москве ознаменовались премьерой двух масштабных ледовых спектаклей Татьяны Навки, где ожили наши дрон‑объекты 🪄
В «Щелкунчике» весь сезон летал кастомный дрон‑орех — визуальный арт‑объект, органично встроенный в сценографию и сюжет. Он появлялся в ключевых моментах, дополняя образ Щелкунчика и погружая зрителя в мир, где технологии и фигурное катание соседствуют на равных.
В «Золушке» внимание привлекала дрон‑фея, кружившаяся вместе с главной героиней, усиливая магию превращений. Сюжет дополняли наши радиоуправляемые бабочки, которые заполняли воздушное пространство арены, оживляя его и создавая вокруг героев ощущение настоящего волшебства.
Вместе с командой Navka Show мы показали, как авиационная художественная технология может стать частью драматургии на льду — каждый дрон был кастомным элементом, синхронизированным с музыкой и движением артистов, работая с точностью и надежностью, необходимой для живого показа.
Спасибо за смелость в решениях и доверие Татьяне Навке, режиссёру и генеральному продюсеру шоу, а также всей команде Navka Show🦋
#Dronico#Работаемввоздухе
У нас есть одна добрая праздничная традиция — все каникулы быть в воздухе на самых громких семейных премьерах. В этом сезоне одной из таких точек стало новогоднее мегашоу «История игрушек» в концертном зале «Москва» в парке «Остров Мечты» 🎄
Это масштабное сценическое представление: более 200 артистов, сотни костюмов, спецэффекты и плотный драматургический ритм — не просто детский спектакль, а полноценное визуальное событие. Наши радиоуправляемые птицы стали частью общей сценографии — точно работали с пространством зала, усиливая динамику и добавляя ощущение живого, объемного действия.
У нас вновь получилось сделать так, чтобы технология не отвлекала от сюжета, а усиливала его. Чтобы полет был не трюком, а продолжением сценического языка. Спасибо всей команде Седьмой Радуги за доверие 👏
Продюсер: Александр Зубарев
Исполнительный продюсер: Ольга Козырева
Главный режиссер: Андрей Крючков
Выпускающий режиссер: Юля Федотова
Художник: Юрий Антизерский
Технический директор: Виталий Галич
Художник по костюмам: Татьяна Куликова
#Dronico#Работаемввоздухе
Открытие сезона Doha Equestrian Tour 2026 в Al Shaqab — один из тех моментов, когда спорт, ритуал и зрелище сходятся в одной точке. Мы стали частью церемонии старта HH The Father Amir’s Prix в столице Катара — события, с которого начинается большой международный сезон конного спорта.
Более 240 всадников со всего мира, сильный спортивный контекст и тщательно выстроенная церемония открытия. Наше шоу дронов вписалось в этот ритм — как продолжение света, движения и напряжения момента, создавая визуальное пространство над Longines Arena.
Именно так Dronico начинает 2026 год: спокойно, уверенно и в диалоге с крупными международными событиями, где дрон-искусство становится частью общей сцены, а не просто эффектом.
#Dronico#Работаемввоздухе
Каждый Новый год приносит с собой ожидание, что впереди — больше света, движения и моментов, которые хочется разделить. И чаще всего так и происходит.
Мы верим в силу этих моментов и в технологии, которые помогают людям чувствовать себя вместе, даже глядя в небо.
Пусть 2026 сияет для всех нас выше и ярче.
С Новым годом,
ваш Dronico 🎇
#Dronico#Работаемввоздухе
Весь 2025 мы работали в небе. Проекты в десятках стран. Тысячи дронов в движении.
Наши идеи и технологии собирали людей вместе и превращали события в живой и незабываемый опыт.
Спасибо всем, кто был с нами в этом небе. Дальше — больше. С наступающим Новым годом! ❤️
#Dronico#Работаемввоздухе
Открыли вечерним шоу дронов Фестиваль здоровья в Абу-Даби.
Эта история — про ритм и собранность. Про движение, выверенное до секунды. Про технологии, которые не доминируют, а аккуратно вписываются в общий смысл события и объединяют людей.
В нашем шоу дроны работают не ради эффекта, а как часть городской культуры и живого опыта, они рассказывают ваши истории и сближают аудиторию.
Abu Dhabi.
Light in motion.
Dronico.
#Dronico#Работаемввоздухе
Полетали в Манаме (Бахрейн) на 16-ой сессии Фестиваля радио и телевидения Персидского залива 🌖
Такую радиоуправляемую сферу без нанесения дизайна вы можете арендовать на любое ваше мероприятие. Она может выступать в качестве летающего экрана — с мейпингом (проекцией на сферу) картинок в диапазоне всей палитры rgb.
Готовые сферы всегда есть в наличии, выполнить такой заказ можно в самые короткие сроки (от 2 дней)@DRONICO⚡️
#Dronico#РаботаемвВоздухе
🔠🔠🔠🔠🔠🔠
Мы можем запустить дирижабли в абсолютно любом месте, а шоу дронов можно безопасно проводить в помещениях!
Более того, для организации шоу дронов и полетов радиоуправляемых аэростатов массой менее 150 гр не требуется разрешение местного самоуправления. #Dronico всегда соблюдает предписания и заботится о безопасности окружающих.
А мы с нетерпением ждем ваших предложений! ❤️
dronico.ru@DRONICO
#РаботаемвВоздухе
Наша команда приняла участие в замечательном фестивале «СЦЕНА»! Стенд #Dronico привлекал внимание гостей, а мероприятие украшала летающая луна с установленной камерой – вели прямую трансляцию из воздуха
🪐
На нашем стенде каждый мог узнать о последних предложениях и проектах. Помните, что лучшие офферы всегда ждут вас на таких мероприятиях!
До новых встреч! #РаботаемвВоздухе