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

Резултати

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

Пребарај: #grammy2026

当前筛选 #grammy2026清除筛选
WOW NEWS

@wownewsru · Post #20579 · 02.02.2026 г., 04:40

В Лос-Анджелесе состоялась 68-я церемония вручения музыкальной премии «Грэмми». Собрали победителей в основных номинациях: Песня года: Билли Айлиш — Wildflower Запись года: Кендрик Ламар и SZA — Luther Альбом года: Bad Bunny — Debí Tirar Más Fotos Лучший новый артист: Оливия Дин Лучший вокальный поп-альбом: Леди Гага — Mayhem Лучший рэп-альбом: Кендрик Ламар — GNX Лучший альбом в жанре R&B: Леон Томас — Mutt Лидерами по количеству полученных наград стали Кендрик Ламар (5), Lady Gaga, Bad Bunny, Turnstile и Леон Томас (2). @wownewsru#grammy2026

Hashtags

WOW NEWS

@wownewsru · Post #20577 · 02.02.2026 г., 04:40

В главной номинации «Альбом года» победил Bad Bunny. Его работа «Debí Tirar Más Fotos» стала первым латиноамериканским альбомом в истории, который получил эту престижную награду. @wownewsru#grammy2026

Hashtags

WOW NEWS

@wownewsru · Post #20576 · 02.02.2026 г., 04:38

Шёл 8ой час премии… 😴 Мы рады вещать для Вас ❤️ Bad Bunny за минуту до объявления номинации «Альбом года». @wownewsru#grammy2026

Hashtags

WOW NEWS

@wownewsru · Post #20573 · 02.02.2026 г., 04:30

Секретный гость на «Grammy 2026» — певица Шер! Артистку отметили за выдающийся вклад в музыку, а также она вышла на сцену, чтобы вручить награду в номинации «Запись года». Правда в моменте она забыла вручить статуэтку и собралась уже уходить со сцены — надеемся, это было так задумано. Победителем в этой номинации стал Кендрик Ламар. И да, Шер 79 лет! Разве в это можно поверить? @wownewsru#grammy2026

Hashtags

WOW NEWS

@wownewsru · Post #20568 · 02.02.2026 г., 04:01

На церемонии «Grammy 2026» прошёл трибьют ушедшим музыкантам, в том числе легендарному Оззи Осборну. Легенда соул-музыки Лорин Хилл вышла на сцену вместе с ведущими R&B и рэп-исполнителями. Семья Оззи Шэрон, Келли и Джек Осборн находились в зале и были очень растроганы выступлением 💔 @wownewsru#grammy2026

Hashtags

WOW NEWS

@wownewsru · Post #20550 · 02.02.2026 г., 03:16

Билли Айлиш с песней «Wildflower» получила «Grammy 2026» в номинации «Песня года». К сожалению, «Abracadabra» не смогла повторить этот успех и уступила в борьбе в этой номинации. @wownewsru#grammy2026

Hashtags

WOW NEWS

@wownewsru · Post #20549 · 02.02.2026 г., 03:02

Сингл Lady Gaga «Disease» не одержал победу в номинации «Лучшее сольное поп-исполнение» на «Grammy 2026». Несмотря на статус мощного лид-сингла и одного из самых обсуждаемых релизов года, композиции не удалось принести Леди Гаге третью статуэтку «Грэмми» за вечер. Награда досталась треку «Messy» Лолы Янг. @wownewsru#grammy2026

Hashtags

WOW NEWS

@wownewsru · Post #20536 · 02.02.2026 г., 02:45

Альбом «MAYHEM» Lady Gaga одержал победу на «Grammy 2026» в номинации «Лучший вокальный поп-альбом». Этот вечер стал триумфальным для Стефани: она получила вторую статуэтку за церемонию и 16-ю награду «Грэмми» в карьере, укрепив свой статус шестой самой награждаемой артистки в истории премии — наравне с Адель. Особенно символично, что это первая победа Леди Гаги в данной номинации за последние 15 лет. Поздравляем ❤️‍🔥 @wownewsru#grammy2026

Hashtags

WOW NEWS

@wownewsru · Post #20532 · 02.02.2026 г., 02:42

Неподражаемая Lady Gaga выступила на церемонии «Grammy 2026» с хитом «Abracadabra». @wownewsru#grammy2026

Hashtags

WOW NEWS

@wownewsru · Post #20480 · 02.02.2026 г., 01:53

Сабрина Карпентер второй год подряд зажигает сцену премии «Грэмми» яркими и запоминающимися выступлениями. В этом году певица исполнила трек «Manchild» — делимся эффектными фрагментами шоу. @wownewsru#grammy2026

Hashtags

WOW NEWS

@wownewsru · Post #20479 · 02.02.2026 г., 01:28

Kendrick Lamar стал самым награждаемым рэпером в истории «Грэмми» — на его счету 26 побед. Ранее рекорд принадлежал Jay-Z с 25 наградами. Сегодня Kendrick победил во всех рэп-номинациях «Grammy 2026». Легенда жанра не иначе 🔥 @wownewsru#grammy2026

Hashtags

WOW NEWS

@wownewsru · Post #20473 · 02.02.2026 г., 01:13

Майли Сайрус и Билли Айлиш в чёрно-белой палитре — выглядят стильно и элегантно. @wownewsru#grammy2026

Hashtags

ПретходнаСтраница 1 од 3Следна