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 слични објави

Пребарај: #scudodelleameriche

当前筛选 #scudodelleameriche清除筛选
Marx21.it

@marx21news · Post #9972 · 17.03.2026 г., 07:45

L'ARROGANZA DI TRUMP E LO "SCUDO DELLE AMERICHE": UN VERTICE FALLITO E UNA MINACCIA ALLA SOVRANITÀ LATINA L'incontro voluto da Donald Trump a inizio marzo 2026 a Mar-a-Lago per lanciare la coalizione "Shield of the Americas" si è rivelato un boomerang diplomatico. Più che un'alleanza, è emersa l'ennesima prova dell'approccio egemonico e sprezzante di Washington verso il continente. Un cocktail di arroganza e assenze Dalla frase "Non imparerò mai la vostra dannata lingua" di Trump, al "parlo solo americano" del segretario alla Guerra Hegseth, l'atteggiamento è stato giudicato inaccettabile persino dai leader di destra presenti. Il vertice è stato snobbato da pesi massimi come Messico, Brasile e Colombia, svuotandolo di significato. Un'agenda nascosta L'evento, presentato come lotta ai cartelli della droga, ha subito svelato il suo vero obiettivo: una crociata geopolitica contro Cina e Russia, con un occhio di riguardo per Panama e il Canale. La nomina di Kristi Noem ad "inviata speciale" ha poi fatto temere un'intensificazione delle ingerenze statunitensi. Il pericolo dell'egemonia militare La firma di 12 paesi (tra cui Argentina, Ecuador, El Salvador) formalizza un coordinamento militare che rischia di trasformarsi in uno strumento per Washington per perseguire i propri fini politici, come dimostra il recente prelevamento criminale del presidente venezuelano Nicolás Maduro. La risposta di chi resiste Mentre Trump minacciava missili contro il Messico e decretava la fine di Cuba, la replica è arrivata chiara da Lula, Petro, Sheinbaum e soprattutto da Miguel Díaz-Canel: il vertice è stato definito un raduno "reazionario e neocoloniale" che costringe i governi compiacenti ad accettare l'uso letale delle forze statunitensi per risolvere i propri problemi interni. L'America Latina non è il cortile di casa di nessuno. L'arroganza non sostituisce il dialogo e la sovranità non si negozia. #Trump#AmericaLatina#Sovranità#Geopolitica#Cuba#Messico#ScudoDelleAmeriche https://www.marx21.it/internazionale/scudo-delle-americhe-il-brutale-approccio-egemonico-compromette-il-dialogo-di-donald-trump-con-lamerica-latina/