@pixiv · Post #199 · 15.05.2017 г., 13:31
#Cup#Cat#Catgirl Mika Pikazo pixiv.net/i/54191467
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
Пребарај: #cup
@pixiv · Post #199 · 15.05.2017 г., 13:31
#Cup#Cat#Catgirl Mika Pikazo pixiv.net/i/54191467
@Wallpaper_INT · Post #46752 · 06.07.2025 г., 16:30
#Flowers#Girl#Aesthetic#Cup#FHD @Wallpaper_INT
Hashtags
@pixiv · Post #196 · 13.05.2017 г., 14:41
#Cup#Water#Flower 假青蛙 pixiv.net/i/58643564
@testflightynoti · Post #37456 · 03.05.2026 г., 15:51
#Stickers#World#Cup #2026 Join the Stickers - World Cup 2026 beta on ✈️#TestFlight 🔗 Link: https://testflight.apple.com/join/XGmY84Xa Shared by Dimitri
Hashtags
@Wallpaper_INT · Post #46670 · 01.07.2025 г., 19:30
#Cat#Cup#Cartoon#Art#Black#8K @Wallpaper_INT
@wildthemestelegram · Post #1706 · 16.10.2024 г., 14:56
Cozy autumn #brown #biege #orange #white #cup #book #leaves #autumn #dark #art ᅠ𝐖𝐢𝐥𝐝 𝐓𝐞𝐥𝐞𝐠𝐫𝐚𝐦 𝐓𝐡𝐞𝐦𝐞𝐬 ᅠ═──═⌘═──═ᅠ
@libertaeragione · Post #4081 · 27.12.2023 г., 13:55
#Spagna#Catalogna Il Parlamento catalano ha dato il via libera, in prima lettura, al disegno di legge del governo per creare un corpo di personale specializzato in azione estera e relazioni con l’#UE, con l'obiettivo di rafforzare la proiezione internazionale della Catalogna. A votare a favore sono stati: #ERC|G/EFA, #Junts|NI, #PSC|S&D, #CUP|LEFT e #ElsComuns|LEFT, ribaltando gli emendamenti generali da parte della destra e dell'estrema destra. @OsservatorioEsteri
@hmangafor3duploadtest · Post #21330 · 09.02.2025 г., 01:19
Title: [L8ERAL]_One_Cup_Of_Sugar_拜干爹_【皮断腿个人汉化】 Authors: #None Tags: #None#3D#歐美#L8ERAL#One#Cup#Of#Sugar#拜干爹 #【皮断腿个人汉化】 recommendation: None TelegraphLinks:page-0-69
@libertaeragione · Post #3899 · 23.07.2023 г., 18:58
#Elezioni#Spagna Intention poll di TV3 in #Catalogna: #PSC|S&D: 13 seggi #ERC|G/EFA: 9 #Junts|NI: 9 #PP|EPP: 8-9 #Sumar (#IU-#Podemos-#ECP-#CatComú)|LEFT: 6 #Vox|ECR: 1-2 #CUP|Sinistra indipendentista: 1 @OsservatorioEsteri
@Ultimorapolitics · Post #37330 · 22.04.2022 г., 14:31
#Sondaggi#Spagna Sondaggio di SW Demoscopia: #PSOE|S&D: 25% (-1) #PP|EPP: 24% (+1) #VOX|ECR: 21% (+2) #UP (#Podemos-#IU-#ECP-#AV)|LEFT: 10% (-3) #ERC|G/EFA: 4% (+4) #MP|Sinistra: 3% (+0,5) #Cs|RE: 2% (-1) #Junts|NI: 2% (+2) #PNV|RE: 2% (+2) #EHBildu|LEFT: 1% (+1) #CUP|Sinistra catalana separatista: 1% (+1) #CC-#NC|RE|G/EFA: 1% (+1) #NA/#UPN|Centro-destra navarro unionista: 0,3% (+0,3) #PRC|Centro-sinistra cantabro: 0,2% (+0,2) Data rilevazione: 11-18 aprile +/-: 23-24 novembre Intervistati: 1205 @UltimoraPolitics
@ultimoraPOLITICS · Post #39329 · 13.05.2022 г., 08:33
#Sondaggi#Spagna Sondaggio di SocioMétrica: #PSOE|S&D: 25% (-1) #PP|EPP: 25% (+2) #VOX|ECR: 19% (-0,5) #UP (#Podemos-#IU-#ECP-#AV)|LEFT: 11% (-1) #ERC|G/EFA: 3% #MP|Sinistra: 3% #Cs|RE: 3% #Junts|NI: 2% #PNV|RE: 2% #EHBildu|LEFT: 1% #EV|Grande tenda localista: 1% #CUP|Sinistra catalana separatista: 1% #BNG|G/EFA: 1% #CC|RE: 0,5% (-0,1) #NA/#UPN|Centro-destra navarro unionista: 0,4% #PRC|Centro-sinistra cantabro: 0,1% (-0,1) Data rilevazione: 4-7 maggio +/-: 9 aprile Intervistati: 1000 @UltimoraPolitics
@ultimoraPOLITICS · Post #39337 · 13.05.2022 г., 13:40
#Sondaggi#Spagna Sondaggio di IMOP: #PP|EPP: 26% (+0,5) #PSOE|S&D: 26% #VOX|ECR: 20% (+1) #UP (#Podemos-#IU-#ECP-#AV)|LEFT: 11% (-1) #ERC|G/EFA: 3% #Cs|RE: 2% #MP|Sinistra: 2% (-1) #Junts|NI: 2% #PNV|RE: 2% (+0,5) #EHBildu|LEFT: 1% #CUP|Sinistra catalana separatista: 1% #BNG|G/EFA: 1% #CC|RE: 0,3% #NA/#UPN|Centro-destra navarro unionista: 0,2% #PRC|Centro-sinistra cantabro: 0,2% #TE|Regionalisti di Teruel: 0,1% Data rilevazione: 24 aprile-8 maggio +/-: 11-23 aprile Intervistati: 1303 @UltimoraPolitics