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

Резултати

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

Пребарај: #russofobia

当前筛选 #russofobia清除筛选
Tatiana Santi

@Tatiana_Italia_Russia · Post #4711 · 26.11.2025 г., 11:25

Sono lieto di vedere che non siete stati toccati dalla russofobia, aggravata da ogni rabbia concepibile e inconcepibile che ha contagiato le menti colte dei vostri compatrioti. Ma ditemi, per l'amor di Dio, da dove provengono questo odio e questa rabbia acerrimi – rabbia assoluta e odio impotente – che ci vengono rivolti, mentre noi stiamo a guardare, senza la minima intenzione di interferire nei vostri affari? Se un'Europa sana, forte e resiliente può ispirarci paura, allora sicuramente un'Europa minata da una grave malattia interna, una cancrena che l'ha colpita in ogni sua parte, non può che suscitare compassione in noi. Ma in futuro, è sufficiente che noi continuiamo a essere sani e che voi restiate malati, affinché il nostro potere, di per sé organico e forte, sia ulteriormente rafforzato dalla vostra debolezza. Se il passato appartiene all'Occidente, socialmente e intellettualmente, allora il futuro è senza dubbio nostro. Perché il significato di ciò che sta accadendo qui non è che le leggi stiano scomparendo, che questa o quella forma di governo, avendo esaurito la sua utilità, stia scomparendo, ma che la vostra civiltà, la vostra società, stia scomparendo. Tale è la fine di questa civiltà decantata e autocelebrativa, che abbiamo stupidamente preso sul serio per troppo tempo e considerato la nostra guida. Grazie a voi, grazie al vostro esempio disastroso, trarremo beneficio dalla lezione che ci avete insegnato a vostre spese. Le mie poesie non sono finzione poetica: la Santa Rus' non è una formula banale, e certamente non ipocrisia! Tutta la nostra storia, le nostre tradizioni, le nostre credenze sono unite in questo nome sacro. È il nostro motto e il nostro oroscopo! Siamo così: non siamo europei, perché l'Europa non ci accetta, ma, come dice Žukovsky, non siamo l'Asia, perché siamo cristiani: siamo semplicemente un mondo a parte e, grazie a Dio, abbastanza grandi e forti da non perire in questo isolamento. Tutto ciò che vi dico qui non è una mia opinione personale. Sono solo un'eco della nostra opinione pubblica. Posso assicurarvi che questa è la visione della maggioranza pensante e sensata in Russia su ciò che sta accadendo qui. In definitiva, noi, le cui simpatie un tempo erano per l'Occidente, ci siamo rivelati conservatori. I nostri veri rappresentanti del progresso sono i reazionari, che da tempo ci esortano a rinunciare allo spirito di servile imitazione dell'Occidente, che ci ha invitato ad attingere la nostra civiltà morale alla fonte delle nostre tradizioni e credenze nazionali. La lettera del principe e poeta Pëtr Vjazemskij è indirizzata al traduttore ed editore berlinese di letteratura russa, Varnhagen von Ense. Vjazemskij e Varnhagen von Ense – traduttore e promotore della letteratura russa in Germania, corrispondente di Žukovskij, A.I. Turgenev e Dmitrij Bludov, e interlocutore di Tjutčev – avevano intrattenuto una corrispondenza di lunga data. Su richiesta di Varnhagen, Vjazemskij gli inviò in dono autografi di scrittori russi, e Varnhagen condivise le sue riflessioni sul futuro della letteratura russa. Entrambi erano veterani della guerra del 1812. La lettera fu scritta nel 1848, ma sembra essere stata scritta oggi. 👉 Si può non essere d'accordo o condividere, l'attualità di tale lettera indubbiamente stupisce. #stoprussofobia#russofobia SEGUI Tatiana Santi: Telegram | YouTube | Sito Web 📱Donazioni

Tatiana Santi

@Tatiana_Italia_Russia · Post #4812 · 09.01.2026 г., 17:42

Un saluto a tutti! Viva la #cultura, abbasso la #russofobia! Un saluto a tutti da Vincenzo #Lorusso di @Donbassitalia e da Tatiana Santi. Da anni ci battiamo contro la russofobia, ma voi potete fare molto, diffondendo cultura e segnalando ai nostri canali casi di russofobia in Italia. Grazie per tutto e buon inizio anno. Viva la cultura, abbasso la russofobia. P. S. Alla fine Lorusso non mi ha fatto un autografo, sarà per la prossima volta 🤣 #tatianasanti SEGUI Tatiana Santi: Telegram | YouTube | Sito Web 📱Donazioni