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

Резултати

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

Пребарај: #bambini

当前筛选 #bambini清除筛选
Papa & Vaticano - News

@papaevaticanonews · Post #9619 · 11.03.2026 г., 10:49

Papa #LeoneXIV al termine dell'udienza generale: "Cari fratelli e sorelle, continuiamo a pregare per la pace in Iran e in tutto il #MedioOriente, in particolare per le numerose vittime civili, tra cui molti #bambini innocenti. Possa la nostra preghiera essere conforto per chi soffre e seme di speranza per il futuro. Si celebrano oggi a Qlayaa, in #Libano, i funerali di Padre Pierre El Raii, parroco maronita di uno dei villaggi cristiani nel sud del Libano, che in questi giorni stanno vivendo, ancora una volta, il dramma della #guerra. Sono vicino a tutto il popolo libanese, in questo momento di grave prova. In arabo El Raii significa il pastore. Padre Pierre è stato un vero pastore, che è rimasto sempre accanto al suo popolo, con l’amore e il sacrificio di Gesù Buon Pastore. Non appena ha sentito che alcuni parrocchiani erano rimasti feriti da un bombardamento, senza esitazione è corso ad aiutarli. Voglia il Signore che il suo sangue sparso sia seme di #pace per l’amato Libano".

RISVEGLIO

@gianlucaprocaccinireport · Post #9727 · 08.08.2025 г., 08:24

Le bambine di Lugansk 🇷🇺 A Lugansk ci sono molti bambini, soprattutto molte bambine, hanno conosciuto solo la guerra. Oggi la Repubblica e' stata completamente liberata, la città completamente ricostruita. I nazionalisti ucraini non sparano più su mercati, ospedali, parchi e scuole. La vita e' tornata quasi normale, nonostante il coprifuoco, qualche drone ucraino raggiunge ancora la città, ma le bambine sono tornate a sorridere, le vedi camminare in gruppo di piccole amiche, giocare nei parchi, una visione non abituale agli occhi dell'occidente che invecchia in solitudine di fronte alla televisione. https://t.me/gianlucaprocaccinireport #chidren#europa#lugansk#bambini

Pensiero Verticale

@verticale_blog · Post #578 · 03.10.2025 г., 06:20

Sempre più spesso si sente di esercenti che impediscono l’ingresso ai bambini, ma se vietassero l’ingresso agli anziani, ai disabili, agli stranieri o agli omosessuali? Lo accetteremmo? Si accetta il divieto di fumare, il divieto di introdurre alcolici, il divieto di parti del corpo scoperte in luoghi di culto, ma i bambini sono allo stesso livello? È giusto trattare i figli come sigarette o animali domestici? In un’Italia che fa sempre meno figli, il divieto ai bambini non è parte e causa del calo demografico? Non bisognerebbe forse coinvolgere il più possibile le famiglie alla vita comunitaria? Confrontati e affronta il tema anche tu, rifletti e non restare indifferente: reagisci e prendi posizione! UN PAESE SENZA BAMBINI NON HA FUTURO. UN PAESE CHE LI ESCLUDE SI CONDANNA DA SOLO #attualita#attualità#news#italia#bambini#hotel#spiaggia

Papa & Vaticano - News

@papaevaticanonews · Post #9121 · 23.01.2026 г., 10:34

“La protezione del #diritto alla #vita costituisce il fondamento indispensabile di ogni altro diritto umano”. Lo scrive Papa #LeoneXIV nel messaggio, redatto in lingua inglese, inviato ai partecipanti alla March for Life 2026 di #Washington D.C., la tradizionale marcia annuale in difesa della vita che si tiene nella capitale statunitense. Nel breve testo, il Pontefice ricorda che “una società è sana e progredisce veramente solo quando salvaguarda la sacralità della vita umana e lavora attivamente per promuoverla”. Il Santo Padre rivolge un invito particolare ai #giovani, esortandoli a “continuare a impegnarsi affinché la vita sia rispettata in tutte le sue fasi attraverso sforzi appropriati a ogni livello della società, compreso il dialogo con i leader civili e politici”. Infine, il Vescovo di Roma incoraggia i manifestanti a “marciare coraggiosamente e pacificamente a favore dei #bambini non nati”, ricordando che difendendoli “state compiendo il comando del Signore di servirlo nei più piccoli dei nostri fratelli e sorelle”.