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

Резултати

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

Пребарај: #terni

当前筛选 #terni清除筛选
Youtrend

@YouTrend · Post #1389 · 29.05.2023 г., 13:50

🔴 Il presidente della Ternana Stefano #Bandecchi (altri) vince il ballottaggio contro Orlando Masselli (CDX) ed è eletto Sindaco di #Terni

Ultimora.net - POLITICS

@ULTIMORAPOLITICS · Post #44604 · 08.02.2024 г., 17:09

❗️#BREAKING — Stefano #Bandecchi si dimette da sindaco di #Terni: "Continuerò come segretario di Alternativa Popolare" La decisione, spiega, senza però dire altro, "è di carattere politico": "Così non correremo il rischio di avere una dittatura bandecchiana" @UltimoraPolitics

RISVEGLIO

@gianlucaprocaccinireport · Post #9577 · 08.07.2025 г., 10:30

"La città che sniffa in silenzio: cocaina, fognature e ombre a Terni" L'andamento stimato del consumo di cocaina a Terni tra il 2022 e il 2025, in dosi giornaliere per 1.000 abitanti. Come si può notare: Il valore iniziale nel 2022 era di circa 13,4 dosi; Dal 2023 al 2025 si osserva una crescita costante, arrivando a circa 15,2 dosi nel 2025. 🔴 Grafico ℹ️ Cos’è la WBE? La Wastewater-Based Epidemiology (WBE) si basa sull’analisi dei metaboliti (es. benzoilecgonina per la cocaina) presenti nelle fognature per stimare i consumi collettivi in modo anonimo ed efficace. . 💧 Terni – Consumo di cocaina (2024–2025) Secondo la Relazione annuale al Parlamento (giugno–luglio 2025), basata sull’analisi dei reflui di 38 città italiane: Consumo medio nazionale di cocaina: circa 11 dosi/giorno per 1 000 abitanti A Terni, si registra un aumento del consumo rispetto al periodo 2020–2022, seguendo un trend in crescita. Nell’ultima rilevazione, la cocaina è tra le sostanze in aumento, insieme a L’Aquila, Potenza, Latina e Verona. .📈 Confronto con altre sostanze Per inquadrare meglio il fenomeno: Eroina a Terni: 7,5 dosi/giorno per 1 000 abitanti, ben più alta della media nazionale (1,2); unica città assieme a Verona con trend in crescita Cannabis ha consumi elevati ovunque, Terni inclusa, con aumento rispetto al passato, mentre le sostanze sintetiche (metanfetamine, ecstasy) mostrano una crescita moderata anche nella città umbra. Fonte: Istituto Mario Negri #terni#ternicentro#umbria#italia .

Youtrend

@YouTrend · Post #1374 · 15.05.2023 г., 17:57

A #Terni Orlando Masselli del centrodestra va al ballottaggio con il presidente della Ternana Stefano Bandecchi (civico). Il centrodestra vince al primo turno a #Treviso e #Sondrio, dove conferma gli uscenti Mario Conte e Marco Scaramellini.

Tutto Elezioni

@tuttoelezioni · Post #794 · 14.03.2025 г., 09:47

#ProssimeElezioni🗓 ❗️Calendario aggiornato Le elezioni e i referendum che seguiremo prossimamente sono: 🇮🇹#Italia: #provinciali a #Perugia e #Terni, il 30 marzo 🇷🇴#Romania: #presidenziali, il 4 maggio (eventuale ballottaggio il 18 maggio) 🇦🇱#Albania: #parlamentari, l'11 maggio 🇵🇱#Polonia: presidenziali, il 18 maggio (eventuale ballottaggio il 1º giugno) 🇵🇹#Portogallo: parlamentari, il 18 maggio 🇮🇹 Italia: #comunali, il 25 e il 26 maggio (eventuale ballottaggio l'8 e il 9 giugno) 🇮🇹 Italia: #referendum, l'8 e il 9 giugno @TuttoElezioni

12
ПретходнаСтраница 1 од 2Следна