@memazy · Post #16576 · 04.03.2026 г., 14:26
#SPb
Hashtags
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
Пребарај: #spb
@memazy · Post #16576 · 04.03.2026 г., 14:26
#SPb
Hashtags
@omanko_gastro · Post #10297 · 27.04.2026 г., 09:20
Фестиваль китайской культуры в «Пище династии Минь» 🥢 Фестиваль «Весенний слёт» пройдёт с 29 по 30 апреля сразу на нескольких площадках Санкт-Петербурга, а ресторан «Пища династии Минь» станет одной из ключевых площадок, где культурная программа соединится с едой и живыми практиками. 29 апреля с 15:00 до 19:00 будет работать чайный ларёк с весенними китайскими чаями, которые будут завариваться бесплатно прямо в зале 30 апреля предусмотрено сразу несколько мероприятий. В 13:00 пройдёт экскурсия «Китай Бродского» в музее «Полторы комнаты» с гастрономическим продолжением в «Пище династии Минь». С 15:30 до 17:30 – кантонское чаепитие, на котором будет действовать чайный безлимит. #spb
Hashtags
@omanko_gastro · Post #9707 · 25.03.2026 г., 14:02
Сет №84 в ресторане «ЕМ»🌼 Олеся Дробот приготовила весенний сет Nº84. Он про переход от холодного сезона с горячими блюдами к летней свежести зелени, ягод и лимонов: • Крем из щавеля с кальмаром • Ладожский сиг с соусом из устриц, лимонным курдом и петрушкой • Морской окунь с запечённым топинамбуром и соусом из скумбрии • Шу с кремом из облепихи #spb
Hashtags
@omanko_gastro · Post #9690 · 24.03.2026 г., 16:03
Новый сет XVI в «Bourgeois Bohemians» (BOBO)🍽 Братья Гребенщиковы представили сет под номером XVI. Это продолжение авторской линии, в которой гастрономия рассматривается как культурный медиум, а не только как ремесло. В меню: • Корзинка из водорослей с лососем холодного копчения, грейпфрутом и маринованным ревенем • «Томаты в разных состояниях». В нем представлены три текстуры: сублимированный томат, подвяленный и свежий узбекский • Морской гребешок с маринованной цветной капустой и свежим огурцом, морским виноградом и орехом макадамии • Фаланга камчатского краба с двумя текстурами свёклы • Фуа-гра с обжаренными белыми грибами, грушей и крошкой выдержанного сыра • Вырезка оленя с сельдереем в двух текстурах: копчёный корень и пюре из сельдерея • Сорбет из ананаса и кинзы с сегментами цитрусов, гелем из ангостуры и перцем эспелет • Десерт из тёмного пива с семечками и сухофруктами • Конфеты ручной работы #spb
Hashtags
@omanko_gastro · Post #9634 · 19.03.2026 г., 14:10
Настойка– телепорт в детство 🚀 В рюмочной «Звонок» в Санкт-Петербурге предлагают попробовать новую сливочную настойку с арахисом «батончик №1», вдохновлённую вкусом культовой конфеты «Рот Фронт». #spb
Hashtags
@omanko_gastro · Post #9044 · 12.02.2026 г., 10:20
Новый сырный бейгл с омлетом и трюфелем в KONA CAFE 🥪 #spb
Hashtags
@omanko_gastro · Post #8992 · 09.02.2026 г., 10:36
Пицца от Self Edge Chinois в Pizza 22 cm 🍕 Для Pizza 22 cm в Питере шеф-повар Алексей Каневский подготовил две специальные позиции: • Пицца с томлёной уткой, соусом хойсин, свежим огурцом, моцареллой и томатным соусом с кунжутным маслом и смесью из пяти китайских специй • Маринованные огурцы с цитрусами – апельсин, грейпфрут и свити Self Edge Chinois – новый формат ресторана Self Edge. Название Chinois, с французского «китайский», задаёт направление проекта, основанного на современной интерпретации китайской кухни от бренд-шефа Алексея Каневского. В проекте сохранилась и узнаваемая часть ДНК Self Edge – культовый RawBar и раздел special с редкой рыбой и морепродуктами. #spb
Hashtags
@omanko_gastro · Post #8509 · 13.01.2026 г., 08:02
CUTE PACK × Nothing Fancy 🌱 Питерский Nothing Fancy совместно с CUTE PACK сделали зелёную коллаборацию: живые ростки растений в zip-lock пакете с водой. Росток уже готов к пересадке в горшок. #spb
Hashtags
@omanko_gastro · Post #8264 · 29.12.2025 г., 12:02
Подарочный бокс от «Круч» 🍪 Металлический бокс с отсылкой к тем самым коробкам с нитками из детства. Внутри: • Мишка с малиновым маршмеллоу в тёмном шоколаде • Мишка с маракуйевым маршмеллоу в молочном шоколаде • Кекс «Мадлен» • Хрустящие роксы с орехами и клюквой или изюмом #spb
Hashtags
@omanko_gastro · Post #8019 · 15.12.2025 г., 18:03
Декабрьский спешл в Studio 🍕 В питерском ресторане Studio можно попробовать флэтбред с копчёным сливочным сыром и икрой форели. #spb
Hashtags
@omanko_gastro · Post #7653 · 23.11.2025 г., 16:03
Слойка с грушей в «Подписных изданиях» #spb
Hashtags
@omanko_gastro · Post #7372 · 06.11.2025 г., 16:01
Осенняя новинка в KONA CAFE 🦐 Бейгл с креветкой и манго-сальсой. #spb
Hashtags