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

Пребарај: #impero

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

@marx21news · Post #9677 · 02.02.2026 г., 16:25

La Nuova Dottrina Monroe: petrolio, egemonia e guerra Il presidente Trump ha resuscitato e ampliato la storica Dottrina Monroe, trasformandola da dichiarazione di egemonia sulle Americhe a dottrina di intervento militare ed economico globale. L’obiettivo? Il controllo delle maggiori riserve energetiche del pianeta. VENEZUELA: da sovrano a colonia energetica Come ha spiegato il Segretario di Stato Marco Rubio, gli USA hanno rovesciato Maduro non solo per “democrazia”, ma per eliminare una base operativa di Iran, Russia e Cina nelle Americhe. Il risultato? Oggi il Venezuela, con le sue immense riserve petrolifere (le prime al mondo), è costretto a rivolgersi agli Stati Uniti per finanziamenti, medicinali e persino il diluente per il suo petrolio pesante, che prima importava dalla Russia. Una nuova legge sugli idrocarburi sta smantellando le restrizioni dell’era Chávez, aprendo le porte agli investitori privati stranieri. Una resa economica orchestrata da Washington. IRAQ: il dominio attraverso il dollaro Dal 2003, gli Stati Uniti controllano l’Iraq (quinto per riserve petrolifere) attraverso un’arma micidiale: il Fondo di Sviluppo per l’Iraq depositato alla Federal Reserve di New York. Quando Baghdad nel 2020 osò chiedere il ritiro delle truppe statunitensi, Washington minacciò di bloccare l’accesso a quei fondi, paralizzando il paese. Il petrolio iracheno, fonte del 90% del bilancio nazionale, è quindi un’ancora di salvezza e una catena, manovrata da oltreoceano. IRAN: il prossimo obiettivo Con Venezuela e Iraq piegati, il mirino si sposta sull’Iran (terzo per riserve petrolifere). Le richieste USA alla Repubblica Islamica sono estreme: fine di ogni arricchimento dell’uranio. L’Iran, firmatario del Trattato di Non Proliferazione e sottoposto a controlli ONU, non ha armi nucleari. Ma Israele, che le possiede e non ha firmato il Trattato, riceve invece aiuto dagli USA per ammodernare il suo arsenale. L’obiettivo strategico è chiaro: mantenere Israele come unica potenza nucleare nella regione, impedire all’Iran di diventare un nodo cruciale dei corridoi commerciali russi e cinesi e, infine, assumere il controllo del suo petrolio. Il filo rosso: l’energia come arma Il pattern è inequivocabile. Venezuela, Iraq, Iran. Non si tratta di “esportare democrazia”, ma di impadronirsi delle risorse energetiche strategiche, eliminare competitori globali (Russia, Cina) e consolidare un dominio coloniale del XXI secolo. La “Nuova Dottrina Monroe” è la mappa di questa egemonia: militare, finanziaria e, soprattutto, energetica. ✍️ Di Manlio Dinucci #NuovaDottrinaMonroe#Petrolio#Geopolitica#USA#Venezuela#Iraq#Iran#Energia#Colonialismo#Impero https://www.marx21.it/internazionale/la-nuova-dottrina-monroe/