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 слични објави

Пребарај: #teatrobolshoienlima

当前筛选 #teatrobolshoienlima清除筛选
Noticias de LAD🇷🇺

@LAD_MAERusia · Post #23026 · 19.03.2026 г., 10:09

🇷🇺Del Bolshói a Lima 🇷🇺: Por primera vez en Lima, dos solistas del histórico Ballet del Teatro Bolshói de Moscú protagonizarán “El Lago de los Cisnes”, el clásico del repertorio universal que el Russian Classical Ballet presentará en abril en el Gran Teatro Nacional. 🇷🇺Se trata de Mark Chino y Yaroslavna Kupriná, artistas formados en la tradición académica rusa y actualmente integrantes de la legendaria compañía que estrenó esta obra en 1877, hace 149 años. La presencia de intérpretes del Bolshói —una de las instituciones más influyentes en la historia de la danza clásica— otorga un especial valor simbólico a esta temporada, al tratarse de la misma casa artística donde se presentó por primera vez el célebre ballet con música de Piotr Tchaikovsky, hoy considerado uno de los pilares del repertorio universal. El bailarín Mark Chino, formado en la Academia del Ballet del Bolshói, se graduó con honores y desde sus años de formación destacó en competencias internacionales. Entre sus reconocimientos figuran la medalla de oro y el primer premio en la 13.ª Competencia Internacional de Ballet Dancers and Choreographers de Moscú, además de distinciones en certámenes como Arabesque 2016 y el Vaganova Prix. Actualmente se desempeña como Primer Solista del Ballet del Teatro Bolshói. A su lado estará la destacada bailarina Yaroslavna Kupriná, quien interpretará el papel de Odette y Odile, uno de los más exigentes y prestigiosos del repertorio clásico por la complejidad técnica y dramática que supone encarnar, en una misma función, al Cisne Blanco y al Cisne Negro. Este rol es considerado una verdadera prueba de madurez artística para una bailarina, pues exige transitar entre el lirismo y la fragilidad de Odette y el virtuosismo brillante y seductor de Odile. Kupriná nació en San Petersburgo en 2004 y se graduó con distinción en 2023 de la prestigiosa Academia Vaganova de Ballet, una de las escuelas más influyentes en la formación de bailarines clásicos y cuna de numerosas figuras históricas de la danza. Tras culminar sus estudios fue invitada a integrarse al Ballet del Bolshói, donde participa en producciones y galas de la compañía. En escena, ambos intérpretes combinan virtuosismo técnico, musicalidad y fuerza expresiva, cualidades esenciales para dar vida a la obra maestra de Tchaikovsky, que desde su estreno en Moscú se ha convertido en uno de los títulos más representados del ballet mundial. #BalletRuso #CulturaRusa #TeatroBolshoiEnLima