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

Резултати

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

Пребарај: #pn

当前筛选 #pn清除筛选

中文名: 噗妮露是可爱史莱姆(Puniru is a Kawaii Slime) 话数: 12 放送开始: 2024年10月6日 放送星期: 星期日 导演: 伊部勇志 脚本: 横手美智子(1,3,4,6,10-12)、平見瞠(2,5,8)、池田臨太郎(7,9) 分镜: 伊部勇志(1,5,9)、宮西哲也(2,8)、ワタナベシンイチ(3,6)、野崎真代(4,11)、ちな(7)、本間みなみ(10)、久保雄介(12);Vコンテ:土上いつき(7) ☺️评分:7.3 推荐 💙故事简介 河合井小太郎是一位就读初中二年级的男生,他在小学时捏的史莱姆意外有了生命,于是帮她取名为“噗妮露”,并跟这位史莱姆女孩作为“朋友”快乐地相处。随着七年过去,他们都长大了,其中噗妮露更是变成了一位超级美少女。除了拥有美少女的外貌,噗妮露还可以利用史莱姆的特性,随心所欲变成各种可爱模样,搞得小太郎每天都被她玩弄于股掌之间,过着脸红心跳又多灾多难的日子。究竟噗妮露和小太郎是否能作为“朋友”,一直融洽地相处下去呢? 💔OneDrive:打开表格 😱百度网盘:点击下载 😄往期番剧汇总表格:打开 🔐解压:blackcatunderthemoon 引索:#P#PN 标签:#漫改#日常#搞笑 🗣请不要在讨论中打开链接,请使用频道消息的链接或者表格,讨论中的链接是失效的,百度网盘是自提取,如果没有自提取复制链接可以看到提取码,禁止在线解压

cosplayupload

@cosplayuploadtest2 · Post #102457 · 23.03.2025 г., 03:21

Title: Yuna_Ogura_小倉由菜,_週刊現代デジタル写真集_PN_「色白なお尻に触れてみたい」_Set.03 Authors: #None Tags: #None#Yuna_Ogura_小倉由菜#週刊現代デジタル写真集#Yuna#Ogura#小倉由菜#週刊現代デジタル写真集#PN #「色白なお尻に触れてみたい」 #Set #03 recommendation: None TelegraphLinks:page-0-29

cosplayupload

@cosplayuploadtest2 · Post #102420 · 23.03.2025 г., 03:19

Title: Yuna_Ogura_小倉由菜,_週刊現代デジタル写真集_PN_「色白なお尻に触れてみたい」_Set.02 Authors: #None Tags: #None#Yuna_Ogura_小倉由菜#週刊現代デジタル写真集#Yuna#Ogura#小倉由菜#週刊現代デジタル写真集#PN #「色白なお尻に触れてみたい」 #Set #02 recommendation: None TelegraphLinks:page-0-39

cosplayupload

@cosplayuploadtest2 · Post #102389 · 23.03.2025 г., 03:17

Title: Yuna_Ogura_小倉由菜,_週刊現代デジタル写真集_PN_「色白なお尻に触れてみたい」_Set.01 Authors: #None Tags: #None#Yuna_Ogura_小倉由菜#週刊現代デジタル写真集#Yuna#Ogura#小倉由菜#週刊現代デジタル写真集#PN #「色白なお尻に触れてみたい」 #Set #01 recommendation: None TelegraphLinks:page-0-23

Поступление плугов Kverneland! - модель PN полунавесные оборотные 8 и 9 корпусов. - модель ED навесные оборотные 5 корпусов. Плугам Kverneland доверяют фермера и крупные предприятия. Прочность, долговечность, продуманная настройка и рессорная система защиты - это инвестиции в успешный урожай! Начинаем сборку и в поля! #Агромаг#Kverneland#плуг#лучшийплуг#вспашка#пахота#пахарь#почвообработка#PN#ED @kvernelandrussia

Libertà è ragione

@libertaeragione · Post #4302 · 25.11.2024 г., 00:43

#Elezioni#Uruguay#Presidenziali Yamandú #Orsi (#MPP|Sinistra) è il nuovo Presidente della Repubblica Orientale dell'Uruguay. Battuto il candidato del #PN|Centro-destra Álvaro #Delgado. Con la sua elezione, la coalizione #FA|Sinistra|Centro-sinistra torna a governare l'Uruguay dopo 5 anni di opposizione. @OsservatorioEsteri

Ultimora.net - POLITICS

@UltimoraPOlitics · Post #39184 · 10.05.2022 г., 16:45

#Sondaggi#Moldavia Sondaggio di IDIS-CBS Research-IPRI: #PAS|EPP: 40% (+4) #PSRM|Sinistra russofila: 31% #PȘ|ECR: 11% (-2) #PCRM|LEFT: 7% #MAN|Sinistra: 3% (+1) #DA|EPP: 2% #PN|Grande tenda euroscettica russofila: 2% (-1) #PDM|S&D: 1,5% (+0,5) #AUR|Destra romena: 1% #PS|Anti-corruzione: 1% #PL|RE: 0,3% #PUN|Centro-destra unionista: 0,1% Data rilevazione: 27 aprile-6 maggio +/-: 25 gennaio-5 febbraio Intervistati: 1055 @UltimoraPolitics

Tutto Elezioni

@tuttoelezioni · Post #1266 · 29.09.2025 г., 11:39

#Moldavia🇲🇩 #Parlamentari Risultati preliminari. Distribuzione dei seggi. Affluenza: 52,21% (+3,8% rispetto al 2021) 🟨 Partito Azione e Solidarietà (#PAS|PPE): 55 ✅ 🟥 Blocco Elettorale Patriottico (#BEP; comprende: #PSRM|Socialisti russofili, #PCRM|Comunisti russofili e #PVM|Nazionalisti russofili): 26 🟪#Alternativa (comprende #MAN|Socialdemocratici europeisti, #PDCM|Cristiano-democratici europeisti e #CC|Populisti euroscettici): 8 🟦 Partito Nostro (#PN|Sinistra euroscettica): 6 🟦 Democrazia a casa (#DA|Centro europeista): 6 Totale: 101 Maggioranza: 51 @TuttoElezioni

Tutto Elezioni

@tuttoelezioni · Post #1265 · 29.09.2025 г., 11:36

#Moldavia🇲🇩 #Parlamentari Risultati preliminari. Sezioni scrutinate: 2.274/2.274 (100%). 🟨 Partito Azione e Solidarietà (#PAS|PPE): 50,20% 🟥 Blocco Elettorale Patriottico (#BEP; comprende: #PSRM|Socialisti russofili, #PCRM|Comunisti russofili e #PVM|Nazionalisti russofili): 24,17% 🟪#Alternativa (comprende #MAN|Socialdemocratici europeisti, #PDCM|Cristiano-democratici europeisti e #CC|Populisti euroscettici): 7,96% 🟦 Partito Nostro (#PN|Sinistra euroscettica): 6,20% 🟦 Democrazia a casa (#DA|Centro europeista): 5,62% @TuttoElezioni

Tutto Elezioni

@tuttoelezioni · Post #1261 · 29.09.2025 г., 06:49

#Moldavia🇲🇩 #Parlamentari Risultati preliminari. Sezioni scrutinate: 2.272/2.274 (99,91%). 🟨 Partito Azione e Solidarietà (#PAS|PPE): 50,16% 🟥 Blocco Elettorale Patriottico (#BEP; comprende: #PSRM|Socialisti russofili, #PCRM|Comunisti russofili e #PVM|Nazionalisti russofili): 24,12% 🟪#Alternativa (comprende #MAN|Socialdemocratici europeisti, #PDCM|Cristiano-democratici europeisti e #CC|Populisti euroscettici): 7,97% 🟦 Partito Nostro (#PN|Sinistra euroscettica): 6,20% 🟦 Democrazia a casa (#DA|Centro europeista): 5,62% @TuttoElezioni

Tutto Elezioni

@tuttoelezioni · Post #1259 · 29.09.2025 г., 05:11

#Moldavia🇲🇩 #Parlamentari Risultati preliminari. Sezioni scrutinate: 2.265/2.274 (99,60%). 🟨 Partito Azione e Solidarietà (#PAS|PPE): 50,05% 🟥 Blocco Elettorale Patriottico (#BEP; comprende: #PSRM|Socialisti russofili, #PCRM|Comunisti russofili e #PVM|Nazionalisti russofili): 24,25% 🟪#Alternativa (comprende #MAN|Socialdemocratici europeisti, #PDCM|Cristiano-democratici europeisti e #CC|Populisti euroscettici): 7,99% 🟦 Partito Nostro (#PN|Sinistra euroscettica): 6,21% 🟦 Democrazia a casa (#DA|Centro europeista): 5,63% @TuttoElezioni

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