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

Пребарај: #patricetalon

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

@marx21news · Post #9622 · 23.01.2026 г., 13:04

Benin: elezioni senza opposizione, il volto nascosto della “stabilità” di Talon Le elezioni legislative dell’11 gennaio in Benin hanno consegnato tutti i 109 seggi dell’Assemblea nazionale ai partiti del presidente Patrice Talon. L’opposizione, nonostante il 16% dei voti, resta senza rappresentanza parlamentare. Come è possibile? ⚠️ Una legge elettorale che esclude Per ottenere seggi, un partito deve superare una soglia del 20% in tutte le circoscrizioni – una barriera quasi insormontabile per l’opposizione, penalizzata a livello organizzativo e mediatico. Risultato: oltre un elettore su sei non ha voce in Parlamento. La partecipazione, intanto, cala al 36,7%. Sicurezza e influenza occidentale Dopo il tentato golpe del dicembre scorso, il governo ha accentuato la retorica securitaria. Francia e Stati Uniti rafforzano la loro presenza nel Paese, definito un “partner di sicurezza emergente” per contenere l’instabilità del Sahel e limitare l’influenza russa. La cooperazione internazionale si traduce in un sostegno politico e militare che consolida il regime. Declino democratico Secondo analisti internazionali, il Benin vive un “arretramento democratico”: restrizioni alla libertà di stampa e di assemblea, opposizione marginalizzata. In più, una riforma costituzionale approvata nel 2025 estende i mandati da 5 a 7 anni e introduce un Senato con poteri di controllo – un ulteriore meccanismo per garantire continuità al blocco di potere. Cosa ci aspetta? Le legislative anticipano le presidenziali dell’aprile 2026. Talon non potrà ricandidarsi, ma il suo delfino, il ministro delle Finanze Romuald Wadagni, è già indicato come favorito. Si prospetta un cambio di facciata, non di sostanza. La “stabilità” promessa dal governo sembra sempre più sinonimo di controllo politico, dipendenza esterna e silenzio forzato dell’opposizione. Un modello che rischia di svuotare la democrazia beninese. #Benin#Africa#Democrazia#Elezioni#PatriceTalon#Neocolonialismo#PoliticaInternazionale https://www.marx21.it/internazionale/benin-il-volto-neocoloniale-della-stabilita-talonista/