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

Пребарај: #proletariato

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

@marx21news · Post #9917 · 10.03.2026 г., 17:42

JURIJ GAGARIN, FIGLIO DELLA CLASSE OPERAIA Il 9 marzo 1934 nasceva Jurij Gagarin — figlio di un carpentiere e di una contadina, carne della carne del proletariato sovietico. Non era il rampollo di una dinastia industriale, non aveva alle spalle capitali ereditati o reti di privilegio borghese. Aveva qualcosa di radicalmente diverso: un sistema che aveva spezzato la logica classista dell’accesso alla conoscenza, garantendo a ogni bambino — indipendentemente dall’origine sociale — il diritto reale, materiale e concreto a un’istruzione di qualità. Il risultato? Il 12 aprile 1961, a soli 27 anni, quell’operaio figlio di operai orbitava intorno alla Terra a bordo della Vostok-1, diventando il primo essere umano a conquistare lo spazio. Non un magnate. Non un aristocratico. Un figlio del socialismo. Gagarin non è soltanto un nome nella storia dell’astronautica: è una confutazione vivente dell’ideologia capitalista del merito individuale. La sua traiettoria dimostra cosa diventa possibile quando si abbattono le barriere di classe nell’accesso al sapere, quando il potenziale umano non viene soffocato dalla logica del profitto e della riproduzione del privilegio. Oggi il revisionismo liberale e occidentale lavora sistematicamente per ridurre l’esperienza storica dell’Unione Sovietica a un catalogo di crimini, equiparandola — in modo intellettualmente disonesto e politicamente strumentale — al nazifascismo. È un’operazione ideologica precisa: screditare non solo un’esperienza storica, ma l’idea stessa che i lavoratori possano organizzarsi, governare e costruire. Che esista un’alternativa. Le contraddizioni del socialismo reale vanno analizzate con rigore materialistico, senza apologetica acritica — ma senza nemmeno cedere alla narrazione di chi ha tutto l’interesse a farci credere che nessun altro mondo sia possibile. Gagarin è lì, che orbita ancora, a ricordarci il contrario. SEMPRE PIÙ SU. #JurijGagarin #Gagarin #URSS #UnioneSovietica #Socialismo #ClasseOperaia #Proletariato #Vostok1 #StoriaDelSocialismo #Antimperialismo 📢 Contribuisci al Partito Comunista con una piccola sottoscrizione: 👉https://ilpartitocomunista.it/contribuisci/ 📬 Iscriviti al Partito Comunista: 👉https://ilpartitocomunista.it/tesseramento/ 🔴 Segui il Partito Comunista sui social: 👉https://instabio.cc/PartitoComunista 🎧 Ascolta il nostro podcast su tutte le piattaforme: 👉https://linktr.ee/ilpartitocomunista