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

Резултати

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

Пребарај: #sandu

当前筛选 #sandu清除筛选
Antoine Cléraux

@corrAntoine · Post #475 · 05.07.2025 г., 06:24

Antonio Costa, Ursula von der Leyen, et Kaja Kallas se réunissent ce soir à Chisinau La présidente moldave à la double nationalité Maia #Sandu reçoit ses invités de haut rang à l’occasion du sommet de l’UE qui se réunit afin de discuter des progrès atteints par son gouvernement pour rejoindre l’union. Notre reporter Antoine Cléraux rappelle la ligne politique suivie par ce pays candidat dans ses relations avec #Bruxelles. RT en français • Osez questionner !

Ultimora.net - POLITICS

@ULTIMORAPOLITICS · Post #45124 · 21.10.2024 г., 16:01

#Moldavia - Vince il sì al referendum per l'adesione all'UE, con uno scarto di soli 0.5%. Alle presidenziali sarà ballottaggio tra la presidente uscente filo-UE #Sandu e l'oppositore filo-russo #Stoianoglo. Molti arresti nei giorni precedenti alle elezioni riguardanti ingerenze filorusse sul voto. @UltimoraPolitics

Майя Санду отказалась отвечать на вопрос журналистов о повышении цены на природный газ и будет ли она участвовать в переговорах с "Газпромом". Надеемся, что все, кто за нее голосовал, остались довольны. #Sandu#Молдова#новости#Moldova#ştiri 🤩Подпишись на 112.md 🤩Новости Молдовы и мира 24/7

Сегодня вступил в силу новый тариф — теперь газ стоит 16,74 лея (с НДС). На видео Санду в 2018 году протестует против газа по 4 лея за куб. Кричат "позор", "воры". Говорят, что очень дорого, что население грабят. Требуют скорректировать тариф. #Sandu#Молдова#новости#Moldova#ştiri 🤩Подпишись на 112.md 🤩Новости Молдовы и мира 24/7

"Почему Санду поддерживает Ласкони на выборах президента Румынии? Думаю, это очевидно. У них, скорее всего, один «центр командования», они из одной «шайки», они принадлежат одной и той же геополитической конъюнктуре", - заявил Игорь Додон. #Sandu#Молдова#новости#Moldova#ştiri 🤩Подпишись на 112.md 🤩Новости Молдовы и мира 24/7

Диана Карпински, лидер организации "Izvorul Speranței", выразила "благодарность" сторонникам Майи Санду за повышение цен на газ, утверждая, что режим переживет зиму, но многие пенсионеры не смогут справиться с высокими тарифами. Она подчеркнула, что для обычных граждан и пожилых людей это становится настоящим испытанием. #Sandu#Молдова#новости#Moldova#ştiri 🤩Подпишись на 112.md 🤩Новости Молдовы и мира 24/7

"Майя Санду, прекращайте веселье и партийные посиделки. Выйдите и объясните людям, как им жить с такими тарифами?!" - заявил Игорь Додон. #Sandu#Молдова#новости#Moldova#ştiri 🤩Подпишись на 112.md 🤩Новости Молдовы и мира 24/7

Майя Санду призвала румын голосовать на выборах, подчеркивая важность их голоса для создания сильной и свободной европейской страны. #Sandu#Молдова#новости#Moldova#ştiri 🤩Подпишись на 112.md 🤩Новости Молдовы и мира 24/7

Влад Филат обвиняет Санду, Речана и Парликова в некомпетентности и ложных обещаниях, приведших к катастрофическому энергетическому кризису в Молдове. Он критикует их за ошибки в управлении газовыми закупками, отсутствие планов защиты населения и блокировку либерализации рынка, что усугубило финансовые проблемы и зависимость от «Газпрома». #Sandu#Молдова#новости#Moldova#ştiri 🤩Подпишись на 112.md🤩Новости Молдовы и мира 24/7

Мариан Андони тоже недоволен повышением цен на газ. Но он, естественно, не винит в этом Майю Санду. #Sandu#Молдова#новости#Moldova#ştiri 🤩Подпишись на 112.md 🤩Новости Молдовы и мира 24/7

Наталья Морарь утверждает, что Майя Санду разозлилась на главу Антикоррупционного управления Веронику Драгалин и отозвала своего телохранителя, но с ней будет труднее бороться, чем с бывшим генеральным прокурором Стояногло. Санду не сможет поступить с Драгалин так же, как с Стояногло, поскольку ради неё фальсифицировались выборы и изменялись законы. #Sandu#Молдова#новости#Moldova#ştiri 🤩Подпишись на 112.md 🤩Новости Молдовы и мира 24/7

Вероника Михайлов-Морару заявила, что не слышала о намерении уволить главного прокурора антикоррупции Веронику Драгалин, но подчеркнула необходимость принятия "проактивных мер" для повышения эффективности Прокуратуры антикоррупции. Высший совет прокуроров, получив политическое согласие от Майи Санду, может начать проверку деятельности Драгалин, как это произошло с генеральным прокурором Стояногло. #Sandu#Молдова#новости#Moldova#ştiri 🤩Подпишись на 112.md 🤩Новости Молдовы и мира 24/7

123•••910
ПретходнаСтраница 1 од 10Следна