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

Пребарај: #artistic

当前筛选 #artistic清除筛选
Bera Bee Catcher Announcement

@berabeecatcher_ann · Post #157 · 07.08.2024 г., 03:55

🖼 Bear-tastic Sticker Contest 🎨 Get creative with our bear's expressions & actions! Sweet & fun themes are encouraged 🥳 🗓️ From now until Sunday, August 18, 2024, 23:59 UTC. 🏆 Prizes: 🥇1st: 100 USDT, 1000 BEE, 20 CANDY 🥈2nd: 60 USDT, 750 BEE, 15 CANDY 🥉3rd: 40 USDT, 500 BEE, 10 CANDY 🎁 Every qualified entry: 50 BEE, 5 CANDY 🎪How to Participate: 1. Create more than 3 unique stickers of our bear. 2. Ensure your stickers are original and not copied from elsewhere. 3. Submit your stickers to the designated contest channel on Discord or Telegram. 🕺 Discord: https://discord.gg/berasighub -> go to #artistic-beras channel 🪩Telegram: @BeraBeeCatcher -> Contest Channel

Hashtags

ART IN SPORT

@BarykinaLiubov · Post #1715 · 04.04.2025 г., 09:27

Master Class In BERLIN 05.04.25 Международный проект «Искусство в спорте» Любови Барыкиной В Берлине Германия 💜 #LiubovBarykina #ArtInSport #InternationalProject #Dancing #Education #Artistic #Emotions

ART IN SPORT

@BarykinaLiubov · Post #1712 · 25.03.2025 г., 20:14

#MeisterKlasse Des Internationalen Projektes “Kunst im Sport” In Neulussheim Deutschland 30.03.2025 #Germany #ArtInSport #LiubovBarykina #EmanuelaBatke #RhythmicGymnastics #Dance #Artistic #Education 🤝💃🏽🔥

ART IN SPORT

@BarykinaLiubov · Post #2017 · 10.08.2025 г., 21:01

Master Class in Koblenz, Germany 🇩🇪 2025 @rsg.koblenz Мастер-класс международного Проекта „Art in Sport” В Кобленце, Германия #Dancing#Expression #Artistic#Emotionality #LiubovBarykina#Choreographer #PersonalCoach#ArtlnSport For individual training sessions And master classes, please Contact us via private message 👍👍👍🌼🌼🌼💃🏽💃🏽💃🏽 По проведению Мастер-классов, Постановок и Индивидуальных занятий Свяжитесь со мной В личном сообщении 👍

Home decor

@dzdigital3 · Post #19407 · 02.02.2026 г., 23:15

Wait for the end result! 😱 Stunning Resin Art Transformation #ResinArt#HomeDecor#InteriorDesign#WallClock#EpoxyResin#LuxuryLiving#DecorInspiration#FluidArt#DIYIdeas#Artistic#StatementPiece#WallArt