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

Резултати

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

Пребарај: #cyclone

当前筛选 #cyclone清除筛选
Voir de ses propres yeux

@voir_yeux · Post #11884 · 23.02.2026 г., 15:19

🇲🇬🇷🇺 Deux avions Il-76 du ministère russe des Situations d'urgence ont acheminé une aide humanitaire à Madagascar, touché par le cyclone Gezani. C’est ce qu’a rapporté à TASS le service de presse du ministère. #aide#cyclone#russie

Amazing Geography 🌍

@amazingeo · Post #166 · 03.09.2025 г., 03:12

🌍 In 2023, Cyclone Freddy became the longest-lasting tropical cyclone ever recorded, traveling over 12,000 kilometers and affecting countries from Madagascar to Mozambique with powerful winds and rain. ✨ #cyclone⚡#disaster⚡#weather⚡#geography⚡#nature⚡#earth 👉subscribe Amazing Geography🌍 ​

Amazing Geography 🌍

@amazingeo · Post #399 · 21.10.2025 г., 15:31

🌍 The highest recorded wind gust at ground level reached 408 km/h during Australia's 1996 Tropical Cyclone Olivia. This extreme burst shattered previous records for wind speed on Earth. ✨ #meteorology⚡#cyclone⚡#wind⚡#geography⚡#nature⚡#earth 👉subscribe Amazing Geography 👉more Channels ​

Voir de ses propres yeux

@voir_yeux · Post #11709 · 12.02.2026 г., 14:33

🇲🇬 Le gouvernement malgache a décrété "l’état de sinistre national" après le passage du cyclone Gezani, a rapporté le journal Madagascar Tribune. D’après les dernières données du Bureau national de gestion des risques et des catastrophes (BNGRC), le cyclone a fait 36 morts, 374 blessés et 6 disparus. Au total, plus de 257.000 personnes ont été affectées par ses conséquences, et près de 9.000 Malgaches ont été contraints de quitter leur domicile. La ville de Toamasina, la deuxième du pays après la capitale et principal port, est la plus touchée: elle a été détruite à 80%. #madagascar#cyclone#conséquences

Amazing Geography 🌍

@amazingeo · Post #473 · 24.11.2025 г., 12:31

🌍 In 2023, Cyclone Mocha became one of the strongest storms ever recorded in the North Indian Ocean, with winds over 250 km/h, causing severe flooding and reshaping coastal landscapes. ✨ #disaster⚡#cyclone⚡#flooding⚡#geography⚡#nature⚡#earth 👉subscribe Amazing Geography 👉more Channels ​

Voir de ses propres yeux

@voir_yeux · Post #11699 · 11.02.2026 г., 16:59

🇲🇬Au moins 20 personnes ont été tuées et 33 blessées par le cyclone tropical Gezani dans la ville de Toamasina, dans l'est de Madagascar. C'est ce qu'indique dans un communiqué le Bureau national de gestion des risques de catastrophes, obtenu par TASS. Le décompte des victimes et l'évaluation des dégâts sont en cours. Les districts d'Atsinanana, d'Analamanga, d'Analanjirofo et d'Alaotra-Mangoro ont été les plus durement touchés. La population de Madagascar avait été prévenue à l’avance de l’approche de Gezani, dont la vitesse du vent à l’épicentre atteint 250 km/h. Les cours dans les écoles ont été suspendus. La compagnie aérienne nationale Madagascar Airlines a annulé tous ses vols du 11 février. #madagascar#cyclone#gezani

Amazing Geography 🌍

@amazingeo · Post #581 · 19.01.2026 г., 20:31

🌍 In 2023, Cyclone Biparjoy spun over the Arabian Sea for nearly two weeks—a rare “very severe cyclonic storm” to last so long in this region, with winds impacting coasts over 1,000 kilometers apart. ✨ #cyclone⚡#disaster⚡#winds⚡#geography⚡#nature⚡#earth 👉subscribe Amazing Geography 👉more Channels ​

港島西。Channel

@islandwest84 · Post #40141 · 09.10.2023 г., 01:27

大片見紅!颱風小犬喪咬港南半部 港九局部日雨量已逾400mm!易冧山泥 詳情👉https://channelchk.com/a/14039 天氣師李鈺廷提提你 #weather#science#storm#typhoon#cyclone#天氣#氣象#科普#科學#天文台#李鈺廷#風暴#颱風#熱帶氣旋#季候風#小犬#Koinu

港島西。Channel

@islandwest84 · Post #40137 · 08.10.2023 г., 00:10

8號風球預告!天文台10.8 12-2pm改發 料小犬下午颱風級掠港100km內 多處烈風 詳情👉https://channelchk.com/a/14023 天氣師李鈺廷提提你 #weather#science#storm#typhoon#cyclone#天氣#氣象#科普#科學#天文台#李鈺廷#風暴#颱風#熱帶氣旋#季候風#小犬#Koinu