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

Резултати

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

Пребарај: #tsunami

当前筛选 #tsunami清除筛选
Interesting Planet 🌍

@interesting_planet_facts · Post #1375 · 16.04.2026 г., 22:11

🌎 A massive tsunami struck the North Sea in 6200 BCE, flooding Doggerland—a land bridge that once connected Britain to Europe. Caused by the Storegga Slide, an underwater landslide off Norway, the waves reached up to 20 meters high and permanently altered the region’s geography. ✨ #tsunami⚡#prehistory⚡#geology 👉subscribe Interesting Planet 👉more Channels ​

Interesting Planet 🌍

@interesting_planet_facts · Post #1048 · 17.11.2025 г., 22:11

🌎 The 1755 Lisbon earthquake was one of the most destructive natural catastrophes in European history. The quake, followed by a tsunami and fires, destroyed much of Lisbon and killed up to 50,000 people. Its impact led to major advances in seismology and influenced Enlightenment thinking about disasters. ✨ #earthquake⚡#tsunami⚡#history 👉subscribe Interesting Planet 👉more Channels ​

Interesting Planet 🌍

@interesting_planet_facts · Post #900 · 12.10.2025 г., 22:11

🌎 An enormous tsunami struck the Indian Ocean on December 26, 2004 after a magnitude 9.1 earthquake off Sumatra. Waves up to 30 meters high inundated coasts in 14 countries, killing over 230,000 people and displacing millions, making it one of the deadliest natural disasters in recorded history. ✨ #tsunami⚡#earthquake⚡#history 👉subscribe Interesting Planet 👉more Channels ​

Interesting Planet 🌍

@interesting_planet_facts · Post #1199 · 06.01.2026 г., 22:11

🌎 The Krakatoa volcanic eruption in Indonesia in 1883 unleashed one of the loudest sounds ever recorded, heard over 4,800 kilometers away. The blast triggered tsunamis up to 40 meters high, destroying coastal towns and killing more than 36,000 people. ✨ #catastrophe⚡#volcano⚡#tsunami 👉subscribe Interesting Planet 👉more Channels ​

Interesting Planet 🌍

@interesting_planet_facts · Post #668 · 01.09.2025 г., 13:22

🌎 A colossal tsunami struck Japan’s Sanriku coast in 1896, triggered by an undersea earthquake. Towering waves up to 38 meters high destroyed villages and claimed nearly 22,000 lives, prompting global advances in seismic and tsunami warning systems. ✨ #tsunami⚡#history⚡#disasters 👉subscribe Interesting Planet ​

Voir de ses propres yeux

@voir_yeux · Post #12596 · 20.04.2026 г., 11:56

🇯🇵 Des vagues de tsunami de 70 cm de haut ont touché la côte de la préfecture d'Iwate, dans le nord-est du Japon, après un tremblement de terre de magnitude 7,5 enregistré à l'est de la côte Pacifique de la région nord-est de Tohoku, a indiqué l'Agence météorologique japonaise. Une alerte tsunami (avec des vagues pouvant atteindre trois mètres) a été déclenchée pour les préfectures de Miyagi, Iwate et Aomori, ainsi que pour la côte sud d'Hokkaido. Selon la chaîne NHK, les vagues ont été détectées à 5-20 km des côtes. #japon#tsunami#vagues

海岚之家✿™

@ZCL_Public · Post #306 · 09.03.2024 г., 03:59

#第三档 注意:现在不稳定且速度有所减慢 请自行鉴别! #tsunami#tnet 20/100G/季 10/180G/月 这什么速度啊?! 这是什么啊?? 解锁全绿 速度超标 节点倍率 x1 邀请制 必须使用邀请码 官网:点此进入 群组:点此进入 😅个人意见:1月新机场 稳定性待考察 但是这个速度这个解锁这个价格 同价位很难有能打的了 十分建议够买试水! 🐥注意:任何机场均有跑路的风险,为了您的财产安全,请优先购买月付!

Amazing Geography 🌍

@amazingeo · Post #433 · 04.11.2025 г., 12:31

🌍 Earthquakes under the ocean can create tsunamis—giant waves traveling at jet speed. A tsunami may cross an entire ocean before reaching land with just minutes’ warning. ✨ #tsunami⚡#earthquake⚡#hazards⚡#geography⚡#nature⚡#earth 👉subscribe Amazing Geography 👉more Channels ​

Amazing Geography 🌍

@amazingeo · Post #128 · 27.08.2025 г., 20:12

🌍 The 2004 Indian Ocean tsunami sent waves up to 30 meters high across 14 countries. This natural disaster traveled as fast as a jet plane, reaching Africa in mere hours. ✨ #tsunami⚡#disasters⚡#waves⚡#geography⚡#nature⚡#earth 👉subscribe Amazing Geography🌍 ​

12
ПретходнаСтраница 1 од 2Следна