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

Пребарај: #rusiarpdc

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

@LAD_MAERusia · Post #22218 · 22.01.2026 г., 08:12

🎙 La excerptadel discurso y las respuestas a las preguntas del Canciller de Rusia, Serguéi Lavrov, durante su rueda de prensa dedicada a los resultados de la política exterior rusa en 2025(Moscú, 20 de enero de 2026) Leer por completo #Brasil#BRICS Destacamos el objetivo de consolidación del BRICS y el creciente interés hacia este grupo. Prestamos todo tipo de apoyo a la presidencia brasileña en el BRICS en 2025. Nuestros amigos brasileños continuaron implementando muchos de los proyectos que lanzamos en la Сumbre del BRICS en Kazán en otoño de 2024. <...> Todos los países de la asociación son nuestros buenos socios. Con cada uno de ellos, en 2025, se fortalecieron nuestras relaciones y la cooperación en todas las áreas. #RusiaChina Rusia y China cooperan de una manera fructífera en los ámbitos humanitario y económico, así como mantienen una interacción estratégica en la palestra internacional, donde representan un factor estabilizador en los asuntos mundiales, cuya importancia en las condiciones actuales está creciendo. #RusiaIndia Me gustaría destacar especialmente el carácter estratégico privilegiado de nuestra asociación con India. #RusiaÁfrica África ya comienza a sentir un "segundo despertar": la conciencia de que la independencia económica no llegó con la independencia política, y de que continúa siendo explotada mediante métodos neocoloniales. <...> Lo percibimos a diario en nuestros numerosos contactos con los países africanos. Actualmente, estamos preparando la 3° Cumbre "Rusia-África". Una etapa importante en la preparación de esta cumbre fue la 2° Conferencia Ministerial (diciembre de 2025, El Cairo). #ONU Por nuestra iniciativa, respaldada por los países del Grupo de Amigos en Defensa de la Carta de la ONU, la Asamblea General adoptó dos importantes decisiones: declarar el Día Internacional de Lucha contra el Colonialismo en todas sus Formas y Manifestaciones (14 de diciembre) y el Día Internacional de la Lucha contra las Sanciones Unilaterales (4 de diciembre). Por nuestra iniciativa, se firmó en Hanói la Convención de las Naciones Unidas contra la Ciberdelincuencia. Es el primer documento en el ámbito de la seguridad internacional de la información. Esperamos que se alcancen resultados igualmente concretos en los debates que se desarrollan actualmente sobre regulación de la #InteligenciaArtificial. #CrisisUcraniana Nunca ha faltado buena voluntad por parte de Rusia para resolver la situación en torno a Ucrania. <...> Bajo la Administración de Donald Trump, EE.UU. está dispuesto a tomar en consideración las causas profundas de este conflicto, creado en gran medida por el presidente anterior, Joe Biden, y su administración. <...> Europa y Zelenski con su equipo intentan hacer que EE.UU. abandone su posición y tratan de imponer nuevamente sus conceptos, incluyendo un alto el fuego de 60 días. <...> Rusia no puede permitirse que el régimen de Kiev se rearme nuevamente y represente una amenaza. Ya han anunciado unas reuniones en Davos, en las que se espera que los líderes europeos aprovechen para intentarcambiar la postura de Donald Trump sobre el conflicto. #RusiaRPDC La materialización práctica de nuestras acciones para fortalecer la seguridad en Eurasia fue el Tratado de Asociación Estratégica Integral con la República Popular Democrática de Corea, que nos brindó una ayuda fraterna y aliada para liberar la región de Kursk de los combatientes ucranianos. #Eurasia En Eurasia, el continente más grande del mundo, a diferencia de África y América Latina, no existe una organización continental general. Hay numerosas estructuras subregionales <...>. Estamos convencidos de que no es necesario perseguir ciertos ejemplos y crear una estructura formal y burocrática. Es más que suficiente, como primer paso, establecer un diálogo continental general. #Resultados2025