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

Резултати

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

Пребарај: #binancealpha

当前筛选 #binancealpha清除筛选
Crypto M - Crypto News

@CryptoM · Post #65235 · 12.04.2026 г., 07:19

🚀 Binance Alpha to Debut Genius Foundation (GENIUS) Token on April 13 According to Binance Wallet's post on X, Binance Alpha will be the first platform to list Genius Foundation (GENIUS), with trading scheduled to open on April 13. Eligible users will be able to claim an airdrop using Binance Alpha Points on the Alpha Events page once trading commences. Further details are to be announced. #BinanceAlpha#GeniusFoundation#GENIUS#airdrop#cryptocurrency#blockchain#Binance#April13

Crypto M - Crypto News

@CryptoM · Post #65451 · 13.04.2026 г., 09:17

🚀 GENIUS Airdrop Opens on Binance Alpha: 240 Tokens for Users With 230+ Alpha Points According to Binance Wallet's post on X, Binance Alpha will debut Genius Foundation (GENIUS) on April 13, 2026, at 11:00 UTC, making it the first platform to list the token. Users holding at least 230 Binance Alpha Points may claim a 240-GENIUS airdrop on a first-come, first-served basis; claiming consumes 15 Alpha Points. If the reward pool remains undistributed, the points threshold automatically drops by 5 every 5 minutes. Claims must be confirmed on the Alpha Events page within 24 hours or are forfeited. #GENIUSAirdrop#BinanceAlpha#GeniusFoundation#Airdrop#Crypto#AlphaPoints#Binance#Token#Blockchain#CryptoEvent

Crypto M - Crypto News

@CryptoM · Post #64614 · 09.04.2026 г., 11:01

🚀 Binance to Launch RateX Trading Competition with Token Rewards According to the announcement from Binance, the platform is set to introduce the RateX Trading Competition on Binance Alpha. This event will take place over two distinct promotion periods, offering participants the opportunity to earn exclusive token rewards. The first promotion period is scheduled from 2026-04-09 13:00 (UTC) to 2026-04-16 13:00 (UTC), followed by the second from 2026-04-16 13:00 (UTC) to 2026-04-23 13:00 (UTC). Participants will be ranked based on their total purchase volume of RateX (RTX) tokens during each period. The top 2,040 users in each period will share a pool of 61,200 RTX tokens, with each eligible participant receiving 30 RTX tokens. Participation in the competition requires trading through Binance Wallet (Keyless) or Binance Alpha, as third-party dApp transactions are excluded. Only cumulative purchases will count, with no volume caps imposed on participants. However, token bridging transactions are not eligible. Notably, trading volume from Alpha-to-Alpha token pairs will not contribute to Alpha Points or competition rankings, effective from 2025-06-17 00:00 (UTC). Rewards will be distributed in RTX tokens and must be claimed by eligible users before 2026-05-07 13:00:00 (UTC). Unclaimed rewards within 14 days will be forfeited. To participate, users must click 'Join' on the Binance App event page, ensuring their trading volume is counted. The latest version of the Binance App and a backed-up Binance Wallet (Keyless) are required. Rankings will be calculated automatically post-promotion, and winners can claim rewards via their Binance Alpha accounts or Binance Wallet (Keyless). Binance reserves the right to amend the terms of the competition at its discretion. #Binance#RateX#TradingCompetition#TokenRewards#CryptoEvent#BinanceAlpha#RTX#TokenDistribution#BinanceWallet#TradingVolume#CryptoPromotion#TokenBridging#CompetitionRanking#AlphaPoints#BinanceApp#Keyless