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

Резултати

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

Пребарај: #moa

当前筛选 #moa清除筛选
Partido Comunista de Cuba

@PartidoComunistadeCuba · Post #10342 · 30.05.2025 г., 20:16

Dr. Roberto Morales Ojeda (DrRobertoMOjeda) en X En #Moa visitamos la Empresa Productora de Níquel y Cobalto Comandante "Ernesto Che Guevara". Aquí intercambiamos con los trabajadores sobre la marcha de los planes de producción, proyectos de desarrollo y las nuevas oportunidades que se abren paso. #GenteQueSuma https://x.com/DrRobertoMOjeda/status/1928540350068531649

Radio Holguín La Nueva

@radioHolguin · Post #10283 · 25.06.2024 г., 21:53

El municipio de #Moa conquistó la sede del acto provincial por el #26deJulio en conmemoración a los asaltos a los cuarteles Moncada y Carlos Manuel de Céspedes, el 26 de julio de 1953. A 71 años de aquellos sucesos acaecidos en Santiago de Cuba y Bayamo la fecha se conmemora en fraterna emulación entre los diferentes territorios para obtener la sede. La emulación provincial otorgó la condición de Destacados a los municipios de Rafael Freyre y Gibara, mientras los municipios de Sagua de Tánamo y #Holguín recibieron también el Reconocimiento. La noticia se conoció en encuentro entre las autoridades y la prensa en el territorio. Felicidades a los moenses! 📸 tomada de Internet

Interesting Planet 🌍

@interesting_planet_facts · Post #1209 · 10.01.2026 г., 12:11

🌎 The moa, a group of flightless birds native to New Zealand, stood up to 3.6 meters tall and weighed over 200 kilograms. DNA analysis reveals that moas’ closest relatives are the small, flying South American tinamous, not ostriches or emus as once believed. ✨ #moa⚡#extinction⚡#paleontology 👉subscribe Interesting Planet 👉more Channels ​

Interesting Planet 🌍

@interesting_planet_facts · Post #843 · 01.10.2025 г., 18:11

🌎 The giant moa, once native to New Zealand, stood up to 3.6 meters tall and weighed about 230 kilograms. Moa vanished around 600 years ago, likely due to hunting by early Polynesian settlers. DNA studies show there were at least nine distinct moa species before extinction. ✨ #moa⚡#extinction⚡#paleontology 👉subscribe Interesting Planet 👉more Channels ​

Partido Comunista de Cuba

@PartidoComunistadeCuba · Post #10339 · 30.05.2025 г., 20:08

Dr. Roberto Morales Ojeda (DrRobertoMOjeda) en X El último municipio que visitamos en #Holguin fue #Moa. Aquí recorrimos el centro reproductor porcino de la Empresa de Servicios a la Industria Cubana del Níquel donde comprobamos la estrategia que desarrollan para alcanzar el autoabastecimiento de alimentos. #GenteQueSuma https://x.com/DrRobertoMOjeda/status/1928538689585451417