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

Пребарај: #aladi

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

@LAD_MAERusia · Post #22893 · 12.03.2026 г., 06:09

🎙Entrevista del Representante Especial del Canciller de Rusia para las relaciones con los países de América Latina y el Caribe, Director del Departamento Latinoamericano de la Cancillería de Rusia, Alexander Shchetinin, concedida durante su visita a #Uruguay a Juan Carlos Blanco Sommaruga del grupo mediático "Diario La R"(1 de febrero de 2026, Montevideo) 📰Leer 📺Ver #RusiaUruguay Esta visita tuvo como propósito principal dialogar con socios y amigos en la República Oriental del Uruguay. Mantuvimos reuniones en la Cancillería, en el Parlamento y también aprovechamos el estatus de Montevideo como ciudad sede de la Secretaría General de la Asociación Latinoamericana de Integración (ALADI). #ALADI Intercambiamos opiniones acerca de la posibilidad de activar un diálogo más estructurado entre su Secretaría General y la Cancillería de Rusia, así como explorar contactos entre ALADI y la Unión Económica Euroasiática (#UEE). Creemos que existen oportunidades prácticas que pueden ser desarrolladas en beneficio mutuo. #CELAC Reiteramos nuestro sincero deseo de restablecer y profundizar el diálogo histórico entre Rusia y la CELAC. Estamos dispuestos a trabajar en una agenda renovada, adaptada a las realidades actuales, y a colaborar con Uruguay en el formato que resulte más conveniente para nuestros socios latinoamericanos. #RusiaAméricaLatina Es importante, en primer lugar, mantener un diálogo vivo y continuo. Escucharnos mutuamente, comprender las prioridades que están en proceso de cambio, pero también identificar las constantes y los intereses recíprocos que permanecen. En segundo lugar, profundizar la cooperación económico-comercial. Sabemos que el contexto internacional presenta dificultades: restricciones financieras, desafíos logísticos, tensiones geopolíticas. Sin embargo, existe interés en sectores como el agrícola, el tecnológico, el energético y el transporte. La tarea es encontrar mecanismos eficaces que permitan desarrollar esos vínculos en las circunstancias actuales. Y en tercer lugar, el componente cultural. A veces se subestima, pero es fundamental. Nuestras naciones son afines en muchos aspectos de su percepción del mundo y de su herencia cultural. Ha existido una interacción profunda entre las culturas latinoamericanas y la cultura rusa. Para nosotros es fundamental promover vínculos con América Latina que fortalezcan su carácter autónomo, independiente y soberano. Consideramos que se trata de una región con enorme potencial, con recursos humanos y naturales significativos, y con capacidad para desarrollar un crecimiento económico dinámico si logra consolidar su estabilidad y su visión estratégica. #AméricaLatina Nosotros pensamos que sin América Latina sería imposible construir un mundo verdaderamente multipolar. Pero reitero: el camino que elija la región depende de sus propios pueblos y gobiernos.