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

Пребарај: #salut

当前筛选 #salut清除筛选
Russian Embassy in Albania

@rusembalb · Post #6739 · 12.04.2025 г., 10:04

🚀 Në 64-vjetorin e fluturimit të parë të njeriut në hapësirën kozmike, ju tregojmë për arritjet më domethënëse të specialistëve sovjetikë dhe rusë në fushën e eksplorimit të hapësirës. Në vitin 1957 Bashkimi Sovjetik për herë të parë në historinë e njerëzimit lëshoi satelitin e parë artificial të Tokës, “#Sputnik-1”. Në vitin 1963 pilotja sovjetike, Valentina #Tereshkova u bë gruaja e parë që fluturoi drejt hapësirës. Në vitin 1965 qytetari i Bashkimit Sovjetik, Aleksei #Leonov, i pari në historinë e njerëzimit realizoi daljen në kozmos të hapur. Ai doli nga anija në një distancë prej pesë metrash dhe qëndroi jashtë saj 12 minuta dhe 9 sekonda. 🛰 “#Salut-1”, i lëshuar në orbitën e Tokës në vitin 1971, u bë stacioni i parë orbital afatgjat i Tokës në botë. Aparati qëndroi në orbitë 175 ditë duke dëshmuar mundësinë e një fluturimi të kontrolluar afatgjatë rreth planetit. Në vitin 1998 në orbitë u hodh moduli “Zarya” (ang. Functional Cargo Block), i cili u bë elementi i parë i Stacionit Ndërkombëtar Kozmik (ISS) të ardhshëm. 🇷🇺Rusia edhe sot zë një vend kryesor midis eksploruesve të hapësirës kozmike. Agjensia Kombëtare Hapësinore “#Roskosmos” po zhvillon në mënyrë aktive sistemin “#GLONASS”, një nga dy sistemet globale të navigimit satelitor, analog i GPS-it amerikan. Kryen eksperimente shkencore në orbitë dhe zhvillon materiale të reja. ☝️ Studimet e "Roscosmos" ndihmojnë në zhvillimin e mjekësisë dhe industrisë, ndërsa satelitët e tij na lejojnë të vëzhgojmë ndryshimet klimatike, nivelin e detit dhe kushtet atmosferike. Disa vite më parë shkencëtarët rusë prezantuan motorin e parë në botë bërthamor për fluturime ndërplanetare, i cili do të mundësojë në të ardhmen udhëtime midis planeteve të Sistemit diellor. “Roskosmos” së bashku me partnerët e tij të huaj merr pjesë në mënyrë aktive në eksplorimin e Hënës, Marsit, Venerës, e cila madje u quajt “planeti rus”, pasi pikërisht studiesit sovjetikë dhe rusë dhanë kontributin më të madh në studimin e saj. ____ 🚀 В день 64-летия первого полета человека в космос рассказываем о наиболее значимых достижениях советских и российских специалистов в области освоения космоса. В 1957 г. Советский Союз впервые в истории человечества запустил первый искусственный спутник Земли «#Спутник-1». В 1963 г. советская летчица Валентина #Терешкова стала первой женщиной, покорившей космос. В 1965 г. гражданин СССР Алексей #Леоновсовершил первый в истории выход человека в открытый космос. Он удалился от корабля на пять метров и пробыл за его пределами 12 минут 9 секунд. 🛰 Запущенный в 1971 г. на орбиту Земли «#Салют-1» стал первой в мире долговременной орбитальной станцией Земли. Аппарат пробыл на орбите 175 суток, доказав возможность долговременного управляемого полета вокруг планеты. В 1998 г. на орбиту был выведен функционально-грузовой блок «Заря», ставший первым элементом будущей Международной космической станции (МКС). 🇷🇺Россия и сегодня занимает ведущее место среди покорителей космического пространства. Национальное космическое агентство «#Роскосмос» активно развивает систему «#ГЛОНАСС», одну из двух глобальных систем спутниковой навигации, аналог американской GPS. Проводит научные эксперименты на орбите, разрабатывает новые материалы. ☝️ Исследования «Роскосмоса» помогают развивать медицину и промышленность, а его спутники позволяют наблюдать за изменениями климата, уровнем моря и состоянием атмосферы. Несколько лет назад российские учёные представили первый в мире ядерный двигатель для межпланетных перелётов, который позволит в будущем путешествовать между планетами Солнечной системы. «Роскосмос» вместе со своими иностранными партнерами активно участвуют в исследовании Луны, Марса, Венеры, которую даже прозвали «русской планетой», поскольку самый большой вклад в ее изучение внесли именно советские и российские исследователи. 📹https://t.me/roscosmos_gk