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

Пребарај: #fairplay

当前筛选 #fairplay清除筛选
DeckForge Announcement

@deckforge_official · Post #342 · 03.11.2025 г., 14:53

🛡️ Protecting the Forge: ANTIFRAUD System Launch As DeckForge grows into a massive global project with millions of players, competitive PvE & PvP modes, guilds & a thriving esports arena, one thing remains unchanged — our commitment to fair play and economic integrity. As we’ve said before, the in-game economy and balance are at the core of everything we build. The most valuable in-game items will soon be tradable on the secondary market, where transparency and security are key. That’s why we’re introducing our ANTIFRAUD system — designed to protect players from unfair actions, exploits & fraud attempts. ✔️ The system has successfully passed all internal checks and will go live later this week. Stay Forged! 🔥 #DeckForge#FromTheForge#OpenBeta#FairPlay Join the DeckForge Community: 🌐YouTube𝕏Twitter🎮Discord 👉Chat👉Announcements👉DeckForge

🚢Tug Network Team расширяется в Европе через Fairplay Towage. Международный альянс буксирных операторов Tug Network Team (TNT) объявил о расширении в Европе благодаря присоединению гамбургской компании Fairplay Towage. После присоединения Fairplay сеть TNT охватывает 113 портов в 13 странах и объединяет флот состоящий из более чем 200 буксиров. Альянс, изначально созданный в 2024 году компаниями Group Ocean, Sulnorte и CPT Towage, был ориентирован на рынок Америк и теперь получает полноценное присутствие в Европе. Fairplay Towage работает в 24-х европейских портах, включая Германию, страны Балтии, Польшу, Нидерланды и Бельгию, и располагает флотом более 100 современных буксиров**. Участие компании усиливает сеть независимых буксирных операторов и расширяет доступ судовладельцев к буксирным услугам в ключевых портовых регионах. Для портовой отрасли расширение TNT отражает тенденцию к консолидации и созданию глобальных сетей независимых операторов, способных конкурировать с крупными международными буксирными группами. 📌Fairplay Towage Group — немецкая буксирная компания, основанная в 1905 году в Гамбурге, одна из старейших компаний в секторе портового буксирного обслуживания. Компания является частной и принадлежит группе Fairplay Towage Holding - входит в структуру частной группы под контролем семьи Кюне, то есть связана с Kühne Holding / Klaus-Michael Kühne. #Towage#Ports#Tugboats#Fairplay#MaritimeServices

😂 🤨 🧐 😖 😅 🎩 Magic88 魔术师娱乐城 在这个特别的日子里… 我们想对你说一句—— ✨感谢你的陪伴✨ 每一次游戏的心跳, 每一份幸运的闪光, 都因为有你而更有意义。 💫 这个感恩节,感谢有你, 一起体验更公平的快乐。 #Magic88#感恩节#感谢有你#魔术师娱乐城#FairPlay#Thanksgiving 🌟官网入口:✔️mgc88.cc 👈 🎉快点!晚一步,大奖就没了! 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🌐 Telegram ✉️ Luffa 🔐SafeW

😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 😀 🔥行业观察|体育博彩进入高标准时代 近期,美国多个州正在讨论调整体育博彩税收政策, 📊 包括对每笔下注征税 🔒 加强未成年人监管 🏟️ 以及扩大大学赛事投注范围 信号很明显—— 行业正在走向更严格的监管 与更高的合规门槛。 在这样的环境下, 玩家关心的,不只是赔率, ✅更是平台是否透明 ✅是否合规 ✅是否安全 ✨ Magic88魔术师娱乐城 坚持清晰规则与透明机制 ✅通过权威认证审核 🛡️ 让公平与资金安全有据可依 监管在升级, 选择平台的标准,也该升级。 🎯选对平台,才能玩得更安心。 🔞 18+ 仅限成年玩家参与 #Magic88魔术师娱乐城#行业热点#体育博彩#合规平台#FairPlay#安全娱乐#18Plus 官网入口:✅mgc88.cc 🌟 😀🥲😃😄😁😆🥹😅😂🤣