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

Резултати

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

Пребарај: #veneto

当前筛选 #veneto清除筛选
L'Osservatorio - Italia

@Osservatorioitaliano · Post #24989 · 02.04.2026 г., 15:02

#Italia#Veneto Il Presidente della Regione Veneto, Alberto #Stefani (#Lega|PfE), ha annunciato di voler presentare in Parlamento una proposta di legge per vietare l’utilizzo dei social network alle persone con meno di 14 anni. Ha motivato la proposta sostenendo che i social sono all’origine di un "disagio crescente" tra le persone più giovani e che serve una legge per contrastarlo. Attualmente la proposta di legge è stata depositata al Consiglio Regionale del Veneto. Stefani aveva già proposto una legge simile quando era deputato. @Osservatorioitaliano

Tutto Elezioni

@tuttoelezioni · Post #1413 · 24.11.2025 г., 15:35

#Italia🇮🇹 #Regionali #Veneto 🕒Ore 15:00. Affluenza finale: 44,64% (-16,52% rispetto al 2020) Dati per provincia/città metropolitana: - Belluno: 35,29% (-12,55%) - Padova: 49,04% (-16,39%) - Rovigo: 41,19% (-18,69%) - Treviso: 43,78% (-14,49%) - Venezia: 44,00% (-21,52%) - Verona: 44,75% (-16,90%) - Vicenza: 45,10% (-16,70%) @TuttoElezioni

Tutto Elezioni

@tuttoelezioni · Post #1402 · 23.11.2025 г., 22:29

#Italia🇮🇹 #Regionali #Veneto 🕚Ore 23:00. Affluenza parziale: 33,88% (-12,25% rispetto al 2020) Dati per provincia/città metropolitana: - Belluno: 25,96% (-8,97%) - Padova: 37,67% (-11,82%) - Rovigo: 30,60% (-14,06%) - Treviso: 33,35% (-10,78%) - Venezia: 33,25% (-13,48%) - Verona: 33,74% (-13,17%) - Vicenza: 34,69% (-12,29%) @TuttoElezioni

Tutto Elezioni

@tuttoelezioni · Post #1397 · 23.11.2025 г., 18:44

#Italia🇮🇹 #Regionali #Veneto 🕖Ore 19:00. Affluenza parziale: 29,32% (-6,24% rispetto al 2020) Dati per provincia/città metropolitana: - Belluno: 22,74% (-4,21%) - Padova: 32,26% (-6,11%) - Rovigo: 26,36% (-8,37%) - Treviso: 29,07% (-4,61%) - Venezia: 28,92 (-7,57%) - Verona: 29,02% (-6,59%) - Vicenza: 29,86% (-6,50%) @TuttoElezioni

Tutto Elezioni

@tuttoelezioni · Post #1393 · 23.11.2025 г., 12:17

#Italia🇮🇹 #Regionali #Veneto 🕛Ore 12:00. Affluenza parziale: 10,10% (-4,64% rispetto al 2020) Dati per provincia/città metropolitana: - Belluno: 8.00% (-3,44%) - Padova: 10,88% (-4,90%) - Rovigo: 9,39% (-5,37%) - Treviso: 9,83% (-4,24%) - Venezia: 10,23% (-5,04%) - Verona: 9,98% (-4,61%) - Vicenza: 10,39% (-4,53%) @TuttoElezioni

Tutto Elezioni

@tuttoelezioni · Post #1389 · 23.11.2025 г., 09:03

#Italia🇮🇹 #Regionali #Veneto ❓Come si vota in Veneto? Come in Campania e Puglia, in Veneto i cittadini votano sia per il Presidente della Giunta, sia per il Consiglio regionale. È eletto Presidente il candidato che ottiene il maggior numero di voti. Al candidato Presidente eletto viene assegnato un premio di maggioranza. I consiglieri sono 49, più il Presidente eletto e il candidato giunto secondo. I seggi sono ripartiti su base provinciale: - Belluno: 2; - Padova: 9; - Rovigo; 2; - Treviso: 9; - Venezia: 9; - Verona: 9; - Vicenza: 9. È prevista una soglia di sbarramento del 5% per le coalizioni, ovvero del 3% se un gruppo di liste all'interno di una coalizione ha ottenuto il 3%. È ammesso il cd. voto disgiunto. @TuttoElezioni

Ultimora.net - POLITICS

@UltimoraPOlitics · Post #38867 · 09.05.2022 г., 08:57

#Italia#Veneto Luca #Zaia (#Lega|ID): "Non sto proponendo il nucleare ma vivo in un territorio nel quale per gli abitanti delle province di Belluno, Treviso e Venezia ho in magazzino 500 mila pasticche di ioduro di potassio, perché a 200 chilometri c'è la centrale nucleare di Krsko in Slovenia. È inutile dire che sia nuclear free." @UltimoraPolitics

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