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

Резултати

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

Пребарај: #intervision2025

当前筛选 #intervision2025清除筛选
Russian Consulate in Cape Town

@rusconct · Post #3044 · 21.09.2025 г., 10:46

Yesterday in Moscow, the long-awaited performance of the musical ensemble Mzansi Jikelele, representing South Africa at Intervision 2025, took place on stage. Their song “Home” became one of the most emotional and memorable moments of the evening. 🌟Who are Mzansi Jikelele? This unique group was created especially for the event, bringing together five of the strongest voices of the South African music scene: • Tsepho Nkadimeng — a singer and songwriter often called the “South African Stevie Wonder.” Losing his sight in childhood, he devoted himself to music and became one of the country’s leading gospel performers. • Rene Kruger — a vocalist and founder of the Colourful Gifts Foundation, which supports young musicians. • Lady Du — a star of the amapiano genre, songwriter and producer whose tracks top local charts. • Oluterin Smit — a powerful voice in gospel and popular music. • Nonhlanhla Dube — a singer, actress and radio host, admired for her versatility on stage. 🎵About the song “Home” Performed in English, the song is dedicated to the theme of homeland and unity. It seamlessly weaves together afropop, amapiano, soul, gospel and jazz, creating a sound that is both energetic and deeply moving. 🔥 The performance of Mzansi Jikelele was a true celebration of music: charisma, expression and the richness of styles captivated the audience and impressed the jury. South African culture resonated on the international stage brightly and inspiringly. 👏 We sincerely congratulate Mzansi Jikelele on their brilliant debut at Intervision 2025 and wish them many new creative successes ahead! #Intervision2025

Russian Consulate in Cape Town

@rusconct · Post #3038 · 21.09.2025 г., 10:43

✨🇿🇦 Южная Африка на #Intervision2025! 🎶 Вчера в Москве на сцене конкурса Intervision 2025 состоялось долгожданное выступление музыкального коллектива Mzansi Jikelele, представлявшего Южную Африку. Их композиция «Home»стала одним из самых эмоциональных и запоминающихся номеров конкурса. 🌟Кто такие Mzansi Jikelele? Это уникальный коллектив, созданный специально для конкурса и объединивший пять сильнейших голосов южноафриканской сцены: • Цхепо Нкадименг — певец и автор песен, которого называют «южноафриканским Стиви Уандером». Потеряв зрение в детстве, он посвятил себя музыке и стал одним из ведущих госпел-исполнителей страны. • Рене Крюгер — вокалист и основатель фонда Colourful Gifts Foundation, поддерживающего молодых музыкантов. • Леди Ду — звезда жанра амапиано, автор и продюсер, чьи треки возглавляют местные чарты. • Олутерен Смит — мощный голос госпела и популярной музыки. • Нонхланхла Дубе — певица, актриса и радиоведущая, покоряющая сцену своей универсальностью. 🎵О песне «Home» Композиция звучит на английском языке и посвящена теме Родины и единства. В ней органично переплелись афропоп, амапиано, соул, госпел и джаз, создавая энергичное и в то же время проникновенное звучание. 🔥 Выступление Mzansi Jikelele стало настоящим праздником музыки: харизма, экспрессия и богатство стилей покорили публику и жюри. Южноафриканская культура ярко и вдохновляюще прозвучала на международной сцене. 👏 Мы искренне поздравляем Mzansi Jikelele с блестящим дебютом на Intervision 2025 и желаем новых творческих побед! #Intervision2025

Ambassade de Russie au Burkina Faso

@russie_burkinafaso · Post #464 · 20.09.2025 г., 17:45

🔴#EnDirect : Regardez la finale du concours international de musique #Intervision Suivez les liens ci-dessous 👇 🔗https://www.youtube.com/live/Na-JJ_QK624?si=-8EA58skO-o7DhoE 🔗https://www.1tv.ru/shows/intervidenie 🔗https://vkvideo.ru/video-220754053_456243806 #Intervision2025