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 слични објави

Пребарај: #hashkey

当前筛选 #hashkey清除筛选
Airdrop3 LTD

@airdrop3ltd · Post #453 · 24.02.2024 г., 08:26

# LavaNetwork Airdrop - Retroactive 🔥 𝗘𝗮𝗿𝗻 𝗗𝗮𝗶𝗹𝘆 𝗣𝗼𝗶𝗻𝘁𝘀 | 𝗚𝘂𝗮𝗿𝗮𝗻𝘁𝗲𝗲𝗱 𝗔𝗶𝗿𝗱𝗿𝗼𝗽 💰 🌟 Dive into Lava Network, the modular blockchain storming ahead like @CelestiaOrg . Backed by $15M from top funds like #Jump Capital & #Hashkey Capital. 💼 𝗛𝗼𝘄 𝘁𝗼 𝗷𝗼𝗶𝗻: - Sync Metamask to Ethereum 🌐 - Link: https://points.lavanet.xyz/register?code=9DXJ3 - Engage on Discord & Twitter 🔗 - Select your preferred chain (NEAR, Starknet, Ethereum, Evmos...) - Switch RPC & claim Faucet ✅ 💥 𝙏𝙧𝙖𝙣𝙨𝙖𝙘𝙩𝙞𝙤𝙣𝙨 𝙤𝙣 𝙀𝙩𝙝𝙚𝙧𝙚𝙪𝙢 𝙪𝙨𝙞𝙣𝙜 𝙇𝙖𝙫𝙖 𝙉𝙚𝙩𝙬𝙤𝙧𝙠'𝙨 𝙍𝙋𝘾 𝙚𝙖𝙧𝙣 𝙮𝙤𝙪 𝙋𝙤𝙞𝙣𝙩𝙨! ⚡️ 🌿 𝗙𝗮𝗿𝗺 𝗽𝗼𝗶𝗻𝘁𝘀 𝗼𝗻 𝗡𝗘𝗔𝗥, 𝗔𝘅𝗲𝗹𝗮𝗿, 𝗘𝘃𝗺𝗼𝘀, 𝗘𝘁𝗵𝗲𝗿𝗲𝘂𝗺, 𝗦𝘁𝗮𝗿𝗸𝗻𝗲𝘁. 𝗗𝗲𝘁𝗮𝗶𝗹𝘀 𝗼𝗻 𝘁𝗵𝗲 𝗯𝗹𝗼𝗴: https://lavanet.xyz/blog

NEWS 鏈新聞-ABMedia

@abmedia_news · Post #23776 · 10.04.2026 г., 08:00

【🚀商業應用|OKX 聯手 HashKey 投資越南加密貨幣交易所,助 CAEX 資本額達 3.8 億美元 】 #OKX#HashKey#CAEX 📍請見報導: https://abmedia.io/okx-hashkey-invest-vietnam-caex 📍訂閱鏈新聞頻道:https://linktr.ee/abmedia.io

Venture Village Wall 🦄

@venturevillagewall · Post #3890 · 16.01.2025 г., 07:00

Bitcoin ETFs See Major Inflow Reversal On January 15, Bitcoin spot ETFs recorded a net inflow of $755 million, marking the first inflow after four days of outflows. The Fidelity ETF (FBTC) led the charge, attracting $463 million. Meanwhile, Ethereum products also saw inflows, totaling $59.78 million. Forecasts from HashKey Group predict Bitcoin could hit $300,000 by 2025 and Ethereum $8,000, with overall market cap reaching $10 trillion. Analyst insights suggest the Litecoin ETF may be next for approval in the US. For more details, visit the link. #Bitcoin#ETF#Cryptocurrency#Ethereum#Investing#Finance#MarketTrends#HashKey#Litecoin#Fidelity#CryptoForecast#AI#VC