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

Резултати

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

Пребарај: #defitakeover

当前筛选 #defitakeover清除筛选
TON Crypto News

@toncoin_rap · Post #159 · 21.09.2024 г., 06:39

🎧⤴ 🤑TON Ecosystem on Fire! Major Updates from Fintopio, TBook, and XDAO You Can’t Miss This week, the TON blockchain ecosystemrolled out exciting updates across three projects: Fintopio, TBook, and XDAO. Fintopio, one of the fastest-growing DeFi wallets on Telegram, now has 6 million active monthly users, offering fee-free transfers and NFT storage. TBook introduces free TON WISE Credit Scores, encouraging users to showcase their onchain and offchain activities for potential rewards. Lastly, XDAO is pioneering the first DAO ecosystem on TON, integrating Telegram mini-apps and introducing community-driven farming games to attract new users. TON’s rapid growth continues, with a thriving Web3 community ready to reshape digital finance. Chorus: We on TON, leveling up the game, Fintopio's flexin’, ain’t nothin' the same. TBook’s credit stack, XDAO’s on the rise, Decentralized future, right before your eyes. Verse 1: From Telegram straight to the blockchain scene, Fintopio’s the wallet that’s keepin' it clean. Millions logged in, sending cash for free, DeFi on your phone, simple as can be. $HOLD points stackin’, rewards gettin’ high, Move fast, earn big, touch the sky. Security tight, but the game’s still smooth, Digital assets now got nothin' to lose. Chorus: We on TON, leveling up the game, Fintopio's flexin’, ain’t nothin' the same. TBook’s credit stack, XDAO’s on the rise, Decentralized future, right before your eyes. Verse 2: TBook’s in the mix, building up your score, Onchain data, you got rewards in store. Credit's climbing high, opportunity knocks, Show what you’ve done, you control the stocks. Airdrops comin’ in, WISE Credit the key, Exclusive deals, it’s the place to be. You a star on the rise, now the world’s in view, Link up your past, and the rewards come through. Chorus: We on TON, leveling up the game, Fintopio's flexin’, ain’t nothin' the same. TBook’s credit stack, XDAO’s on the rise, Decentralized future, right before your eyes. Verse 3: XDAO’s movin’ fast, DAOs on the map, Farming those coins while you sit back and tap. Mini apps in play, communities grow, TONxDAO tech, let the future flow. Buildin' syndicates, big moves you choose, DAO-based biz, ain’t no time to snooze. Empowerin’ users, decentralize it all, New age of finance, watch the empires fall. Chorus: We on TON, leveling up the game, Fintopio's flexin’, ain’t nothin' the same. TBook’s credit stack, XDAO’s on the rise, Decentralized future, right before your eyes. Bridge: No more middlemen, we takin' control, In the TON ecosystem, we’re playin' the role. From wallets to scores, and DAOs takin' flight, It’s a Web3 revolution, we shine in the night. #TONBlockchain#DeFiTakeover#Web3Revolution #TONCryptoNewsRapStyle 🎧@toncoin_rap