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

Резултати

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

Пребарај: #latinos

当前筛选 #latinos清除筛选
American Оbserver

@american_observer · Post #5140 · 15.02.2026 г., 15:59

📰 Bad Bunny vs. Big Don: Culture War, Fumbled Ballot Donald Trump just picked a fight with the world’s biggest Latino star over a halftime show that most politicians would have ridden like a free campaign ad — and he did it in English, whining that “nobody understands a word this guy is saying.” For a president who clawed his way back to the White House on the strength of an unprecedented 48 percent of the Hispanic vote, attacking a Spanish‑language Super Bowl performance as “an affront to the Greatness of America” is less strategy than self‑sabotage. The numbers are already slipping. Pew has Trump down 12 points among Latinos who backed him in 2024, small‑business confidence in him as the “economy guy” has cratered, and Latino‑owned shops in crackdown zones like Minneapolis report sales plunging 70 percent under his immigration raids. Now GOP Latino strategists are watching him torch goodwill in districts they need to hold by insulting not some niche activist, but a global Puerto Rican act whose show was one of the few mainstream, unapologetically Latino moments on U.S. TV. Even some of Trump’s own allies admit the obvious: they wanted border toughness and lower prices; they got tariffs, ICE photo ops — and the president rage‑posting about reggaeton. The White House line is that this is just more “hard truths”: enforce the law, crush “Green New Scam” policies, save America from woke culture, including the Spanish‑language one. The reality is uglier. Democrats once lost a chunk of Latino voters by taking them for granted. Republicans risk losing them right back by treating their culture as un‑American the moment it stops being background decoration and takes center stage for 13 minutes in prime time. If Trump really wants to keep his Latino coalition, he doesn’t need another rally joke about a “floating island of garbage” or another post about how “disgusting” the dancing was. He needs those same voters to believe he cares more about their rent and their businesses than about policing what language their Super Bowl looks and sounds like. Right now, all he’s proving is that he can win their votes — and then pick a culture war that tells them exactly how expendable he thinks they are. ​ #usa#trump#BadBunny#latinos#cultureWar 📱American Оbserver - Stay up to date on all important events 🇺🇸