TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #121 · 20 јул.

Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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

Резултати

Пронајдени 1 слични објави

Пребарај: #eataly

当前筛选 #eataly清除筛选
Щукина про ТЦ

@girlinmall · Post #2691 · 27.04.2026 г., 05:21

Искусство повседневности и спагетти Как Eataly превратили гастромаркет в Милане в дизайн-проект и очень круто поторговали товарами ограниченной серии В Милане Eataly снова показывает, что сильный ритейл сегодня продает не только продукты, но и культурный опыт. С 20 апреля по 4 мая 2026 года в Eataly Milano Smeraldo работает спецпроект CASA — “Amore, hai mangiato?”. Это коллаборация сети с художником Giotto Calendoli при поддержке Fuorisalone и INTERNI, которая превращает гастрономию в язык заботы. Это отличный пример того, как один точный культурный код можно развернуть в декоре, продуктах, событиях и digital. И все это без ощущения, что картинки художника просто распечатали на принтере и приклеили скотчем к стеллажам. 🏠Когда магазин становится домом В основе проекта — фраза Amore, hai mangiato? (Любовь моя, ты поел(а)?), узнаваемый итальянский способ сказать: я тебя люблю, я о тебе забочусь. И это самый сильный ход: Eataly не уходит в абстрактное «искусство ради искусства», а берет бытовую, теплую интонацию и делает из нее полноценную коммуникацию. Бренд превратил пространство в личную историю про дом, родные рецепты и эмоциональную связь с зоной комфорта — без клише про «бабуля испечет» и приторности. Фасад и интерьер стали инсталляцией, а магазин заработал как гибрид фудхолла и культурной площадки. 🍝Продукт как носитель идеи Коммерчески безупречный шаг — лимитированная серия Spaghetti Amore Eataly. Обычная упаковка пасты здесь не просто картонка, а объект желания: ее хочется сфотографировать, купить и унести домой как сувенир. За это я особенно люблю такие кейсы. Они напоминают, что хороший брендинг живет в самом товаре. Eataly не стал делать условный мерч на тему акции, а превратил продукт в медианоситель. 📣Как проект усилили событиями Дальше включается событийная драматургия. 21 апреля в Eataly прошло кулинарное шоу: Джотто Календоли готовил авторские спагетти из лимитированной пачки. Гостей ждали дегустации и призы-сюрпризы. Идею дали прожить физически: увидеть, попробовать, снять сторис. А потом проект логично перетек в digital через видео в профилях Eataly и художника. 🧠Почему кейс сработал Eataly не потерял связь с тем, что продает. Это не история, где бренд внезапно «играет в искусство» ради Недели дизайна. Здесь все держится на связке: итальянская еда, домашний ритуал, продукт-артефакт, событие-инфоповод и соцсети как усилитель. Пространство, упаковка, ивент и digital не спорят друг с другом, а звучат в унисон, не превращаясь в набор унылых активностей с едой ради фотоотчета. ✨Вывод без вывода Эта коллаба доказывает: одна кодовая фраза может стать каркасом большой кампании. Проект еще идет, но логика уже ясна: Eataly продает чувство дома и заботы, которое хочется купить хотя бы в виде пачки спагетти. #маркетинг#ритейл#Eataly#Fuorisalone#MilanoDesignWeek