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

Резултати

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

Пребарај: #jigjiga

当前筛选 #jigjiga清除筛选
Addis Standard

@addisstandardeng · Post #21596 · 03.03.2026 г., 15:51

Memorial park honoring prominent #Somali anti-colonial leader Sayyid Mohammed Abdullah Hassan inaugurated in #Jigjiga A new memorial park honoring Sayyid Mohammed Abdullah Hassan, the early 20th century Somali scholar, poet and anti-colonial military leader, has been officially inaugurated in Jigjiga, capital of #Ethiopia’s Somali Regional State. Known in Somali as Maxamed Cabdulle Xasan, Sayyid Mohammed Abdullah Hassan is know to have founded and led the Dervish movement, which waged armed resistance against #British, #Italian and Ethiopian colonial expansion in the Somali Peninsula. While widely revered by many Somalis as a symbol of anti-colonial struggle, he was pejoratively labeled the “Mad Mullah” by the British Empire. In 1917, the Ottoman Empire recognized him as the “Emir of the Somali People.” Regional President Mustafa Muhummed presided over the ribbon-..... https://web.facebook.com/AddisstandardEng/posts/pfbid035zhG5D71mJR7UdFHybuQqaDPAcU8msaQNqQShDRQ5NYGVkbYXYFHbQGW62n97vmrl

Addis Standard

@addisstandardeng · Post #21260 · 31.01.2026 г., 08:11

News: PM Abiy receives #Djibouti and #Somalia presidents amid shifting regional security alignments Prime Minister #Abiy_Ahmed on Saturday received President of Djibouti Ismail Omar Guelleh and President of Somalia Hassan Sheikh Mohamud at #Jigjiga Airport, the Ministry of Foreign Affairs said, against the backdrop of intensifying diplomatic and security realignments in the Horn of Africa and the #Red_Sea region. The brief statement by the Ministry, issued on 31 January, did not provide details on the purpose or agenda of the leaders’ arrival in Jigjiga. The visit comes three weeks after Abiy traveled to Djibouti on 11 January for talks with President Guelleh and a tour of the Port of #Doraleh, following #Egypt’s signing of cooperation agreements with Djibouti on port development, logistics, and renewable energy. At the time, Abiy said discussions focused on ... https://www.facebook.com/AddisstandardEng/posts/pfbid02btcBVYhoVm2sSaWhGDni6vmXgSSePTnv598gAea8DcrwpE4QBC7vA24HoQQh8kYKl