Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
Когда знаешь весь путь клиента — ты не «бьёшь наугад» 🔍
CJM— это не «карта кликов». Это поведенческая модель, построенная на данных, которые обновляются в режиме реальном времени.
Что мы видим:
🖥 кто заметил баннер, но проскроллил
👍 кто заинтересовался, но не дошёл до финала
✉️ кто откликнулся на SMS и вернулся
💎 кто ушёл — и кого стоит вернуть позже
Это не просто аналитика. Это — точно выстроенный маршрут клиента, встроенный в экосистему: от первого касания до осознанного действия.
❓А вы ведёте клиента до покупки — или отпускаете его после первого касания?
#VEONAds#CustomerJourney#DataDrivenMarketing#ConversionOptimization#DigitalPathToPurchase
👣Более 30% пользователей «теряются» на середине пути к покупке.
И дело не в нехватке интереса к рекламе. А в том, что их не подвели к нужному действию.
❗️В VEON AdTech путь клиента — это не простая схема. Это динамичная карта, собранная, на основе больших данных и конкретных действий. 🗺
Где внимание погасло. Где сообщение оказалось не в тот момент.
🔜 Завтра покажем, как превращаем путь в конверсию — без случайностей
#VEONAds#CustomerJourney#DataDrivenMarketing#ConversionOptimization#DigitalPathToPurchase
🗺 CJM в мероприятиях: как управлять эмоциями гостей
Лилия Федорова — управляющий партнер Avantage Project ✨о том, как построить эффективный путь гостя и создать запоминающийся эмоциональный опыт на мероприятии любого формата.
Таймкоды:
00:00 - Приветствие и представление спикера
00:46 - Что такое Customer Journey Map и зачем она нужна
01:43 - Применение CJM в ивент-индустрии
02:35 - Этапы пути гостя: от вовлечения до повторных коммуникаций
03:53 - Форматы создания карты пути гостя (схемы, презентации, майнд-мэпы)
05:19 - Почему логистики недостаточно: эмоциональный опыт участников
06:29 - Зачем использовать CJM: повышение качества логистики и сервиса
07:25 - С чего начать построение CJM: определение целевой аудитории
08:07 - Сбор и использование данных для построения маршрута
09:01 - Прототипирование мероприятия: рисуем карту гостя "ногами"
10:42 - Кейс с фестивалем BoogelWoogel: продумывание всех сценариев
11:31 - Регулярное обновление карты пути гостя
12:04 - Командная работа над CJM: вовлечение разных специалистов
12:37 - Новые требования: не только знание, но и эмоциональная включенность
13:11 - Практический кейс: ошибки в логистике летнего тимбилдинга
14:13 - Интеграция партнеров и брендинг вдоль пути гостя
15:05 - Эмоциональная привязка на каждом этапе маршрута
16:03 - Кейтеринг, тихие зоны и другие элементы комфорта
17:20 - Адаптация мероприятия под разные поколения аудитории
18:01 - Работа с фокус-группами в рамках CJM
18:46 - Ключевые вопросы при построении карты пути: что чувствует гость?
19:56 - Финал мероприятия и последующие коммуникации
21:03 - Выводы: CJM - не просто инструмент, а мышление
21:39 - Новый опыт как основная цель современного мероприятия
22:41 - Заключение: важность участника и его эмоций
23:46 - Сессия вопросов-ответов
23:57 - Вопрос о практическом применении CJM в агентстве
26:17 - Вопрос об отстаивании экспертной позиции перед заказчиком
#cjm#customerjourney#мероприятия#eventmanagement#avantageproject#путьгостя#управлениемероприятиями
Все видео деловой программы «Сцены 10» на сайте https://scenafest.ru/2025
Деловая программа организована при поддержке EVENT MBA
Видеосъёмка — PROSTUDIO.NET
Когда вы на шаг впереди — вам не нужно кричать, чтобы вас заметили🤭
В VEON AdTech:
🏎 Никакой гонки за вниманием.
🎰 Никакой ставки на «повезёт — увидит».
🧐 Никаких «шумов» на фоне
Объявление появляется не поверх интерфейса,
а внутри маршрута пользователя:
✔️ интерес ✔️
✔️действие ✔️
✔️ решение✔️
💬 А вы хотите войти в момент, когда внимание не нужно завоёвывать — а достаточно просто быть на месте?
https://veonadtech.com/ru
#VEONAdTech#DigitalMarketing#AttentionEconomy#AdTech#SmartAdvertising#DataDriven#CustomerJourney#PerformanceMarketing#PrecisionTargeting
🚀 VEON Ads
Это развитая экосистема с умной логикой показа и прозрачной аналитикой.
Каждая интеграция усиливает не просто охват, а управляемость.
Вы знаете, кому, где и зачем показалось объявление.
📊 Реклама видима!
⚙️ Механика понятна!
👥 Поведение подтверждено!
Это и есть главное отличие:
VEON Ads — это не рынок рекламы.
Это система принятия верных решений.
https://veonadtech.com/ru
#VEONAds#VEONAdTech#DigitalMarketing#AdTech#SmartAdvertising#DataDriven#MarketingAnalytics#PerformanceMarketing#AttentionEconomy#CustomerJourney