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

Резултати

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

Пребарај: #guineabissau

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

@papaevaticanonews · Post #9238 · 05.02.2026 г., 14:42

Con un Rescriptum ex Audientia SS.mi, Papa #LeoneXIV, a seguito dell'udienza concessa al Cardinale Segretario di Stato, Pietro Parolin, il 29 gennaio scorso, ha disposto l’approvazione dello Statuto emendato della Fondazione “Giovanni Paolo II per il Sahel”, allineando al quadro normativo vigente per le Persone Giuridiche strumentali della Curia Romana e alla normativa sul patrimonio della Sede Apostolica. Della Fondazione, si legge nel Rescritto pubblicato oggi, fanno parte 9 paesi della regione del #Sahel: #BurkinaFaso, #CapoVerde, #Gambia, #GuineaBissau, #Mali, #Mauritania, #Niger, #Senegal e #Ciad. “L’obiettivo primario della Fondazione - recita lo Statuto - è promuovere la formazione di persone che si dedicano al servizio del proprio Paese e dei propri simili, senza discriminazioni, in uno spirito di sviluppo umano integrale e solidale, per combattere la desertificazione e le sue cause e per fornire assistenza alle vittime della siccità nei Paesi del Sahel”. Di qui la priorità alla formazione di facilitatori ed esperti locali e al finanziamento di progetti nell’0 ambito dello sviluppo tecnico, socio-sanitario, socio-agricolo, socio-economico, sviluppo integrale e ambientale. Il patrimonio della Fondazione, per volere del Papa, è costituito dal ricavato delle collette organizzate in tutto il mondo cattolico a beneficio del Sahel.

AI match predictions

@ai_match_prediction · Post #11224 · 31.03.2026 г., 01:05

Friendlies🏳 2026-03-31 17:30 UTC South Africa vs. Panama Predicted outcome: South Africa❌ Predicted score: 2:1 Actual: Panama 1:2 #SouthAfrica#Panama 2026-03-31 17:30 UTC Jordan vs. Nigeria Predicted outcome: Nigeria❌ Predicted score: 1:2 Actual: Draw 2:2 #Jordan#Nigeria 2026-03-31 18:00 UTC Peru vs. Honduras Predicted outcome: Peru❌ Predicted score: 2:1 Actual: Draw 2:2 #Peru#Honduras 2026-03-31 18:00 UTC Morocco vs. Paraguay Predicted outcome: Morocco✅ Predicted score: 2:0 Actual: Morocco 2:1 #Morocco#Paraguay 2026-03-31 18:00 UTC Guinea vs. Benin Predicted outcome: Draw❌ Predicted score: 1:1 Actual: Benin 0:1 #Guinea#Benin 2026-03-31 18:30 UTC Scotland vs. Ivory Coast Predicted outcome: Draw❌ Predicted score: 1:1 Actual: Ivory Coast 0:1 #Scotland#IvoryCoast 2026-03-31 18:30 UTC Algeria vs. Uruguay Predicted outcome: Algeria❌ Predicted score: 2:0 Actual: Draw 0:0 #Algeria#Uruguay 2026-03-31 18:45 UTC England vs. Japan Predicted outcome: England❌ Predicted score: 1:0 Actual: Japan 0:1 #England#Japan 2026-03-31 18:45 UTC Ukraine vs. Albania Predicted outcome: Albania❌ Predicted score: 1:2 Actual: Ukraine 1:0 #Ukraine#Albania 2026-03-31 18:45 UTC Austria vs. South Korea Predicted outcome: Draw❌ Predicted score: 1:1 Actual: Austria 1:0 #Austria#SouthKorea 2026-03-31 18:45 UTC Netherlands vs. Ecuador Predicted outcome: Draw✅ Predicted score: 1:1 Actual: Draw 1:1 #Netherlands#Ecuador 2026-03-31 18:45 UTC Wales vs. Northern Ireland Predicted outcome: Draw✅ Predicted score: 1:1 Actual: Draw 1:1 #Wales#NorthernIreland 2026-03-31 18:45 UTC Slovakia vs. Romania Predicted outcome: Slovakia✅ Predicted score: 3:1 Actual: Slovakia 2:0 #Slovakia#Romania 2026-03-31 18:45 UTC Rep. Of Ireland vs. FYR Macedonia Predicted outcome: Rep. Of Ireland❌ Predicted score: 2:0 Actual: Draw 0:0 #RepublicofIreland#Macedonia 2026-03-31 19:00 UTC Spain vs. Egypt Predicted outcome: Spain❌ Predicted score: 1:0 Actual: Draw 0:0 #Spain#Egypt 2026-03-31 19:00 UTC Senegal vs. Gambia Predicted outcome: Senegal✅ Predicted score: 5:1 Actual: Senegal 3:1 #Senegal#Gambia 2026-03-31 19:00 UTC Burkina Faso vs. Guinea-Bissau Predicted outcome: Burkina Faso❌ Predicted score: 2:0 Actual: Draw 1:1 #BurkinaFaso#GuineaBissau 2026-03-31 19:00 UTC Brazil U20 vs. Paraguay U20 Predicted outcome: Brazil U20✅ Predicted score: 3:1 Actual: Brazil U20 3:1 #BrazilU20#ParaguayU20 #Football#Friendlies

AI match predictions

@ai_match_prediction · Post #11204 · 28.03.2026 г., 05:05

Friendlies🏳 2026-03-28 09:30 UTC Hungary U17 vs. Moldova U17 Predicted outcome: Hungary U17✅ Predicted score: 2:1 Actual: Hungary U17 3:1 #HungaryU17#MoldovaU17 2026-03-28 10:00 UTC Wales U19 vs. USA U19 Predicted outcome: USA U19✅ Predicted score: 0:1 Actual: USA U19 0:4 #WalesU19#USAU19 2026-03-28 11:35 UTC China PR U23 vs. Korea DPR U23 Predicted outcome: Draw✅ Predicted score: 1:1 Actual: Draw 1:1 #ChinaPRU23#KoreaDPRU23 2026-03-28 13:00 UTC Zambia U23 vs. Malawi Predicted outcome: Zambia U23✅ Predicted score: 2:1 Actual: Zambia U23 1:0 #ZambiaU23#Malawi 2026-03-28 13:30 UTC India U23 vs. Bhutan U23 Predicted outcome: India U23✅ Predicted score: 3:1 Actual: India U23 5:0 #IndiaU23#BhutanU23 2026-03-28 14:00 UTC South Korea vs. Ivory Coast Predicted outcome: Draw❌ Predicted score: 1:1 Actual: Ivory Coast 0:4 #SouthKorea#IvoryCoast 2026-03-28 14:00 UTC San Marino vs. Faroe Islands Predicted outcome: Faroe Islands✅ Predicted score: 0:2 Actual: Faroe Islands 1:2 #SanMarino#FaroeIslands 2026-03-28 14:00 UTC Kyrgyzstan vs. Madagascar Predicted outcome: Madagascar✅ Predicted score: 1:2 Actual: Madagascar 2:5 #Kyrgyzstan#Madagascar 2026-03-28 14:00 UTC Portugal U18 vs. Iceland U19 Predicted outcome: Portugal U18✅ Predicted score: 2:1 Actual: Portugal U18 4:0 #PortugalU18#IcelandU19 2026-03-28 16:00 UTC Senegal vs. Peru Predicted outcome: Senegal✅ Predicted score: 2:1 Actual: Senegal 2:0 #Senegal#Peru 2026-03-28 16:00 UTC Botswana vs. Zimbabwe Predicted outcome: Zimbabwe✅ Predicted score: 0:1 Actual: Zimbabwe 0:3 #Botswana#Zimbabwe 2026-03-28 16:00 UTC Egypt U20 vs. Algeria U20 Predicted outcome: Draw✅ Predicted score: 1:1 Actual: Draw 2:2 #EgyptU20#AlgeriaU20 2026-03-28 17:00 UTC Hungary vs. Slovenia Predicted outcome: Draw❌ Predicted score: 1:1 Actual: Hungary 1:0 #Hungary#Slovenia 2026-03-28 17:00 UTC Scotland vs. Japan Predicted outcome: Draw❌ Predicted score: 1:1 Actual: Japan 0:1 #Scotland#Japan 2026-03-28 18:00 UTC Burkina Faso vs. Guinea-Bissau Predicted outcome: Burkina Faso✅ Predicted score: 2:1 Actual: Burkina Faso 5:0 #BurkinaFaso#GuineaBissau 2026-03-28 18:00 UTC USA U18 vs. Morocco U18 Predicted outcome: USA U18❌ Predicted score: 2:1 Actual: Morocco U18 1:2 #USAU18#MoroccoU18 2026-03-28 19:30 UTC USA vs. Belgium Predicted outcome: USA❌ Predicted score: 2:1 Actual: Belgium 2:5 #USA#Belgium 2026-03-28 22:00 UTC Brazil U20 vs. Paraguay U20 Predicted outcome: Brazil U20✅ Predicted score: 3:1 Actual: Brazil U20 3:1 #BrazilU20#ParaguayU20 2026-03-29 00:00 UTC Haiti vs. Tunisia Predicted outcome: Tunisia✅ Predicted score: 1:2 Actual: Tunisia 0:1 #Haiti#Tunisia 2026-03-29 01:00 UTC Mexico vs. Portugal Predicted outcome: Portugal❌ Predicted score: 1:2 Actual: Draw 0:0 #Mexico#Portugal #Football#Friendlies