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

Резултати

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

Пребарај: #taiko

当前筛选 #taiko清除筛选
시팡이 공부방~~❤️

@sipangE · Post #18499 · 20.05.2025 г., 09:02

🔔 Taiko, 내일 Pacaya 하드포크 예정 ➡️ 주요 내용 - 지난 몇 달간 엄격한 테스트와 버그 수정 완료 - Multiproving을 포함한 Pacaya 포크 - 1,166,000 블록에서 발생 [2025.5.21 예상] -베이스드 사전확정 기능 도입 ➡️ 거래소 입출금 정지 일정 - 업비트 : 2025.5.20 18:00 ~ - 빗썸 공지는 아직 나오지 않음 *자세한 내용은 아래 원문을 확인하시길 바랍니다 ✅원문 ✅홈페이지✖️트위터🎮디스코드 #Taiko

Hashtags

Nomis | Onchain Reputation Protocol

@nomis_protocol · Post #596 · 06.01.2025 г., 15:56

Taiko fam, it’s time to step up! 🫵 Prove you’re more than just a wallet address: - Head over to our new quest on DeBank - Get your brand-new Taiko Reputation Score - Receive 100 DeBank XP 🧪 Start here —-> 🔗Get Here Prove your contribution to #Taiko! 💠Nomis tApp | X | Discord | YouTube | Check Scores⚖️

Hashtags

TokenPocket

@tokenpocket_channel · Post #1160 · 29.01.2024 г., 06:21

🔴TokenPocket now supports ​taikoxyz testnet! You can easily custom add #Taiko Testnet to your wallet in just 3 simple steps! Guide👉https://help.tokenpocket.pro/en/wallet-operation/how-to-create-a-wallet/taiko (Both mobile wallet and chrome extension wallet) ✅#Taiko is a fully open source, permissionless, #Ethereum-equivalent ZK-Rollup. 👉https://www.tokenpocket.pro/ 👉https://extension.tokenpocket.pro/#/ 【Details】https://twitter.com/TokenPocket_TP/status/1751852357602910369 【Powered By】Crypto Box

TokenPocket

@tokenpocket_channel · Post #1176 · 02.02.2024 г., 07:37

👓 Let's meet #Taiko🥁! ​taikoxyz ✅#Taiko is a fully open source, permissionless, #Ethereum-equivalent ZK-Rollup. Get started with #Taiko's BCR: Taiko's Based Contestable Rollup Quiz & Ecosystem Showcase and Discover it with your #TokenPocket! 👉https://galxe.com/taiko/campaign/GCSaRtw63M Collect points and enjoy the journey! 💙🩷 【Details】https://twitter.com/TokenPocket_TP/status/1753320975658324290 【Powered By】Crypto Box

Tibicen

@world_music_geek · Post #943 · 05.05.2025 г., 15:03

Ensemble Kineya — Japon: Nagauta (Ocora, 2000) #traditional#nagauta#shamisen#taiko#Japan Japon: Nagauta — альбом ансамбля Kineya, посвящённый вокальному стилю нагаута (長唄), название которого буквально переводится как «длинная песня». Этот жанр возник в XVII веке и с тех пор тесно связан с театром кабуки. Нагаута сформировался в Эдо, нынешнем Токио, когда музыканты начали исполнять драматические тексты под акомпанемент сямисэна — трёхструнного щипкового инструмента, пришедшего в Японию из Китая через острова Рюкю. Позже к сямисэну добавились ударные и флейты, и сформировался устойчивый ансамбль, ставший частью сценической традиции. В записи представлены композиции в форме, характерной для этого жанра. 🔗Spotify | YouTube | Telegram