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

Резултати

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

Пребарај: #shibarmy

当前筛选 #shibarmy清除筛选
🚀🚀The intelligent investors💯💯

@the_intelligent_investors · Post #1177 · 01.02.2024 г., 15:32

$WOOFS #SHIBARMY! 👉 $WOOFS is building a utility Platform “Woof Tools” Web3 Crypto freelance marketplace and ecosystem, it’ll facilitate rewards, including the Woofserral Program and the Dogshouse Staking Program. Max Supply: 7,900,000,000 Platform taxes in $WOOFS will have 0% fees • $WOOFS is an ERC-20 token • $WOOFS liquidity locked • $WOOFS will transition to Shibarium network (L2) with token swap WOOFS LP IS LIVE 👉https://legacy.gempad.app/presale/0xCde126D98f6bEb7e948B0e1E5755d879a83EeC3c?chainId=1 WOOFS PARTNERS 👉 $XFUND, $WOOFS, Shibarium, Unification, UNoDes, OoO, ShibaSwap, KyberSwap, Goplusecurity TG : https://t.me/woof_tools Web : https://wooftools.io/

Hashtags

🚀🚀The intelligent investors💯💯

@the_intelligent_investors · Post #1064 · 04.09.2023 г., 13:20

🐾 Hey, #SHIBARMY, listen up! 📢 🚀🪐 Level up your crypto game with WOOFTools: the ultimate trading solution❣️ 📈 Real-time crypto prices? ✅ 💼 Easy DEFI portfolio management? 💥 🔔 Customizable price alerts? ✅ 💰 Exclusive rewards with $WOOFS? 🌐🇨🇳 Say goodbye to complicated platforms - WOOFTools has your back! 😎 🌐 Seamless integration, all in one place! No more jumping around. Trade like a pro with ease. Ready to rock the cryptocurrency world? 🔥🔥 Join the WOOFTools community now! The First DEX for #Shibarium in real time! 🌐 Website: https://wooftools.io 📢 Telegram: https://t.me/Woof_Tools 🇨🇳Chinese 💬: https://t.me/wooftoolsChinese $WOOFS will be released on IDO this Q3, early access on Telegram group ! Unleash your trading potential and stay ahead of the curve! 📈💥 #WOOFTools#Crypto#DeFi#TradingRevolution#ShibArmy #Shibarium Nfa DYOR

Ganar Dinero Seguro

@ganardineroseguro · Post #740 · 07.10.2021 г., 23:28

The Crypto Prophet (@ShibaProphet) Tweeted: The 2nd Parabolic is Starting Buckle up. It's going higher than before #Shiba#SHIB#ShibaCoin#SHIBARMY#shibainu#shibainu#ShibaSwap#SHIBDELETEAZERO#shibarium#ShibaProphethttps://t.co/uxWOszyTh5https://twitter.com/ShibaProphet/status/1446214042071277572?s=20