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

Резултати

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

Пребарај: #baikonur

当前筛选 #baikonur清除筛选
International News

@intnewsagency · Post #8790 · 22.03.2026 г., 12:37

Successful Launch of Soyuz-2.1a with Progress MS-33 from Upgraded Baikonur The Soyuz-2.1a rocket carrying the Progress MS-33 cargo ship launched from the refurbished Site 31 at Baikonur Cosmodrome. This mission marks a key milestone in restoring infrastructure and ensuring steady supplies to the ISS. The site’s repair highlights Russia’s vital role in international space efforts. The launch symbolizes overcoming technical challenges and strengthening Russia’s position in space exploration. #Russia#Baikonur#Space#Soyuz#Progress The main news of Russia and the world ishere.

🛰️ Cómo la URSS lideró la observación climática desde el espacio En plena Guerra Fría, cuando la carrera espacial entre la URSS y Estados Unidos estaba en su punto más álgido, la Unión Soviética dio un paso silencioso pero trascendental en la historia de la ciencia: el 25 de junio de 1966, desde el cosmódromo de Baikonur, fue lanzado el satélite Kosmos-122, el primer satélite meteorológico soviético del sistema experimental Meteor. Este satélite, también conocido como Meteor No.5L, no solo fue un logro tecnológico, sino una herramienta revolucionaria. Durante cuatro meses, Kosmos-122 orbitó la Tierra a una altitud de entre 657 y 683 kilómetros, proporcionando por primera vez información continua y global sobre el estado de la atmósfera terrestre. Equipado con cámaras ópticas y sensores infrarrojos, el satélite podía observar la cobertura nubosa tanto de día como de noche, algo impensable hasta entonces. La información recopilada no solo fue utilizada por el servicio hidrometeorológico soviético, sino que también se compartió con otros países, marcando un raro ejemplo de cooperación internacional en plena tensión geopolítica. Este gesto posicionó a la URSS como pionera en el uso pacífico del espacio para el beneficio común. Entre 1966 y 1981, Moscú dió la orden de lanzar 36 satélites meteorológicos más de esta serie, sentando las bases de una red global de observación climática. Gracias a esta constelación, se mejoraron significativamente los pronósticos del tiempo, se optimizó la agricultura y se fortaleció la preparación ante desastres naturales. Kosmos-122 fue más que un satélite: fue un símbolo del ingenio soviético y de la capacidad de la ciencia para trascender fronteras. Hoy, casi seis décadas después, su legado sigue orbitando en cada imagen satelital que consultamos desde nuestros teléfonos. #Kosmos122#MeteorologíaEspacial#HistoriaSoviética#SatélitesRusos#Baikonur ¡Comparte nuestro contenido!❤️ 🖥https://vamosarusia.com 💬@vamosarusia