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

Резултати

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

Пребарај: #remix

当前筛选 #remix清除筛选
dopingpong

@dopingram · Post #4166 · 15.08.2025 г., 08:17

«Игла Remix», flash анимация арт-группы Doping Pong, 2009 Это был первый трейлер будущего фильма Рашида Нугманова «Игла Remix». Мы увидели его именно таким и предложили весь фильм решить в анимационном стиле. У режиссера было свое видение и в результате ремикс был сделан в другой манере. Однако в День памяти Виктора Цоя хочется вспомнить именно этот ролик, который представлял собою кино эпохи MTV. #dopingpong#игла#remix#викторцой#моро

GitHub Trends

@githubtrending · Post #15211 · 10.10.2025 г., 11:30

#typescript#cloudflare_kv#cloudflare_pages#cloudflare_workers#drizzle_orm#postgres#remix#tailwindcss#typescript#vite Supermemory lets you easily save and organize information from websites, PDFs, text, and apps like Google Drive or Notion. You can then chat with your saved memories in natural language to quickly find what you need. It connects with popular AI tools, automatically updates your data, and creates smart knowledge graphs to help you remember and use your information better. This saves you time and effort by keeping all your important content in one place and making it easy to access and search whenever you want. It’s like having a personal assistant for your digital memory. https://github.com/supermemoryai/supermemory

跑跑資訊站 KartInfo

@KartInfoTW · Post #416 · 17.08.2022 г., 11:01

韓服跑跑 18 周年啦,本周推出各式慶祝活動還有一日限定 ShowTime、每日限定道具,金拉麵合作開跑,拉麵車、拉麵角色免費送, 還有精靈主題新賽道 2 張以及全新「道具裝備方案系統」、「1 vs. 1 追擊戰」和「隊友聊天熱鍵」等多項系統改革推出! 🔥 更新詳情:https://kinf.cc/Cr825 ▶️ 追蹤 Google 新聞:https://kinf.cc/gn ▶️ 立即加入 Discord:https://kinf.cc/dc #跑跑卡丁車#KartRider#周年#生日#小提琴V1#登入獎勵#ShowTime#HotTime#限定道具#金拉麵#진라면#合作#累積在線獎勵#原味金拉麵V1#辣味金拉麵V1#道具裝備方案#1vs1#追擊戰#模擬模式#系統優化#精靈#新賽道#BGM#Remix#聊天熱鍵