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

Резултати

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

Пребарај: #scn

当前筛选 #scn清除筛选
天道圖書館

@cfantasy_library · Post #926 · 18.05.2024 г., 12:52

《万界的猎人》 | 作者: 溅血飘香 开局用幻术冒充系统, 骗穿越者服毒自杀——主角就是受各世界意志委托狩猎穿越者的猎人. 稍微有点偏群像, 会大量通过他人视角去描写事件的推进. 文笔一般, 但故事有点意思, 从各种不同人的角度与想法表达出了主角的行为与给人带来的进步与压力. 前面一两百章比较生动, 后面三四百章结构有些松散了 不过没关系, 这本书下面没有了: 因为作者写书总是被封, 觉得总在思考「怎么才不会被封」有些本末倒置了, 累了不写了 但是前面的群像故事还是有点意思的, 当闲暇时光的零食看看不错 #推书#txt#scn

L'Osservatorio - Italia

@Osservatorioitaliano · Post #24974 · 01.04.2026 г., 17:14

#Italia#Sicilia I deputati di #SCN|Populisti regionalisti, Cateno #DeLuca, Giuseppe #Lombardo e Matteo #Sciotto hanno firmato le loro dimissioni dall’ARS. Il loro obiettivo è quello di raccogliere, entro il 31 luglio, 36 sottoscrizioni determinando così la chiusura anticipata della legislatura e andare al voto nel mese di ottobre. “Siamo in una fase in Sicilia dove ci troviamo nel bel mezzo del vannamarchismo, dove impera chi si sa vendere meglio”, ha detto il sindaco di Taormina. @OsservatorioItaliano

Tutto Elezioni

@tuttoelezioni · Post #1326 · 06.10.2025 г., 19:32

#Italia🇮🇹 #Regionali #Calabria ❗️Roberto #Occhiuto (#FI|PPE; supportato anche da #FdI|ECR, #LSP|PfE, #DC|Centro, #UdC|PPE, #NM|PPE, #ScN|Meridionalisti, #PA|Animalisti) è stato rieletto Presidente della Giunta regionale della Calabria. @TuttoElezioni

Tutto Elezioni

@tuttoelezioni · Post #1434 · 25.11.2025 г., 06:31

#Italia🇮🇹 #Regionali #Puglia Risultati finali. Sezioni scrutinate: 4.032/4.032 (100%). 🟧 Antonio #Decaro (#PD|S&D; sostenuto anche da #M5S|LEFT, #AVS|G/EFA|LEFT, #PiùEu|RE, #IV|RE, #Az|RE, #PSI|S&D, #DemoS|S&D, #PRC|LEFT, liste minori e civici): 63,97% ✅ 🟦 Luigi #Lobuono (#FdI|ECR, #FI|PPE, #LSP|PfE, #UdC|PPE, #NPSI|Centro-destra, #ScN|Meridionalisti, #PdF|Destra cristiana, #DC|Centro, liste minori e civici): 35,13% @TuttoElezioni

Tutto Elezioni

@tuttoelezioni · Post #1421 · 24.11.2025 г., 18:39

#Italia🇮🇹 #Regionali #Puglia Risultati parziali. Sezioni scrutinate: 2.035/4.032 (50,47%). 🟧 Antonio #Decaro (#PD|S&D; sostenuto anche da #M5S|LEFT, #AVS|G/EFA|LEFT, #PiùEu|RE, #IV|RE, #Az|RE, #PSI|S&D, #DemoS|S&D, #PRC|LEFT, liste minori e civici): 64,86% 🟦 Luigi #Lobuono (#FdI|ECR, #FI|PPE, #LSP|PfE, #UdC|PPE, #NPSI|Centro-destra, #ScN|Meridionalisti, #PdF|Destra cristiana, #DC|Centro, liste minori e civici): 34,25% @TuttoElezioni

Tutto Elezioni

@tuttoelezioni · Post #1418 · 24.11.2025 г., 17:50

#Italia🇮🇹 #Regionali #Puglia Risultati parziali. Sezioni scrutinate: 1.212/4.032 (30,06%) 🟧 Antonio #Decaro (#PD|S&D; sostenuto anche da #M5S|LEFT, #AVS|G/EFA|LEFT, #PiùEu|RE, #IV|RE, #Az|RE, #PSI|S&D, #DemoS|S&D, #PRC|LEFT, liste minori e civici): 65,58% 🟦 Luigi #Lobuono (#FdI|ECR, #FI|PPE, #LSP|PfE, #UdC|PPE, #NPSI|Centro-destra, #ScN|Meridionalisti, #PdF|Destra cristiana, #DC|Centro, liste minori e civici): 33,49% @TuttoElezioni

Tutto Elezioni

@tuttoelezioni · Post #1415 · 24.11.2025 г., 15:53

#Italia🇮🇹 #Regionali #Puglia Proiezione di Opinio Italia. Emittente: RaiNews24. Campione: 5%. 🟧 Antonio #Decaro (#PD|S&D; sostenuto anche da #M5S|LEFT, #AVS|G/EFA|LEFT, #PiùEu|RE, #IV|RE, #Az|RE, #PSI|S&D, #DemoS|S&D, #PRC|LEFT, liste minori e civici): 69,2% 🟦 Luigi #Lobuono (#FdI|ECR, #FI|PPE, #LSP|PfE, #UdC|PPE, #NPSI|Centro-destra, #ScN|Meridionalisti, #PdF|Destra cristiana, #DC|Centro, liste minori e civici): 28,8% @TuttoElezioni

Tutto Elezioni

@tuttoelezioni · Post #1409 · 24.11.2025 г., 14:03

#Italia🇮🇹 #Regionali #Puglia Exit poll di SWG. Emittente: La7. Campione: 86%. 🟧 Antonio #Decaro (#PD|S&D; sostenuto anche da #M5S|LEFT, #AVS|G/EFA|LEFT, #PiùEu|RE, #IV|RE, #Az|RE, #PSI|S&D, #DemoS|S&D, #PRC|LEFT, liste minori e civici): 65,0-69,0% 🟦 Luigi #Lobuono (#FdI|ECR, #FI|PPE, #LSP|PfE, #UdC|PPE, #NPSI|Centro-destra, #ScN|Meridionalisti, #PdF|Destra cristiana, #DC|Centro, liste minori e civici): 29,0-33,0% @TuttoElezioni

Tutto Elezioni

@tuttoelezioni · Post #1328 · 07.10.2025 г., 07:03

#Italia🇮🇹 #Regionali #Calabria Risultati preliminari. Sezioni scrutinate: 2.406/2.406 (100%) 🟦 Roberto #Occhiuto (#FI|PPE; supportato anche da #FdI|ECR, #LSP|PfE, #DC|Centro, #UdC|PPE, #NM|PPE, #ScN|Meridionalisti, #PA|Animalisti): 57,26% ✅ 🟧 Pasquale #Tridico (Ind. sostenuto da #M5S|LEFT, #PD|S&D, #AVS|G/EFA|LEFT, #IV|RE, #DemoS|S&D, #PRC|LEFT): 41,73% 🟫 Francesco #Toscano (#DSP|Sovranisti euroscettici): 1,01% @TuttoElezioni

Tutto Elezioni

@tuttoelezioni · Post #1325 · 06.10.2025 г., 19:26

#Italia🇮🇹 #Regionali #Calabria Risultati parziali. Sezioni scrutinate: 1.672/2.406 (55,90%) 🟦 Roberto #Occhiuto (#FI|PPE; supportato anche da #FdI|ECR, #LSP|PfE, #DC|Centro, #UdC|PPE, #NM|PPE, #ScN|Meridionalisti, #PA|Animalisti): 58,30% 🟧 Pasquale #Tridico (Ind. sostenuto da #M5S|LEFT, #PD|S&D, #AVS|G/EFA|LEFT, #IV|RE, #DemoS|S&D, #PRC|LEFT): 40,72% 🟫 Francesco #Toscano (#DSP|Sovranisti euroscettici): 0,97% @TuttoElezioni

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