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

Пребарај: #electro

当前筛选 #electro清除筛选

Oi oi massive🤙🤙🤙 ЭТО REWIND: WINTER SPECIAL🎅💨❄❄❄ 20 декабря и всего на одну ночь бар @iemigro (Эмиграция) превратится в настоящий лондонский бейсмент, где наши селекторы бок о бок будут играть лучшие пластинки за 2025 год UK Garage/ 2Step/ Breakbeat /Electro/ Jungle Только чистый стиль и жирный бас, который расшевелит даже самых ленивых За пультом парни, которые знают, как надо крутить пластинки: 🎧 BR SELECTA б2б FLAT б2б SLIDER б2б DMITRY V🎧 🗓 Дата: 20 декабря (суббота) 🕙 Старт: 22:00 📍 Локация: Бар «Эмиграция» Почтовый съезд, 3 #rewind_nn#ukgarage#2step#breakbeat#electro#jungle#nnov#party

mOrj

@m0rj_music · Post #226 · 16.04.2026 г., 09:32

Cords Community LIVE уже сегодня! 🎶 Резиденты коммьюнити вечером в @neuroticlub устроят настоящее музыкальное пиршество! В меню: сочный edm, хаус, электро, танцевальное инди и даже импровизационный техно-джем! Будет жарко и вкусно! 18:00 - Sasha Chilikova (noise / minimal chaos) 19:00 - Твоё Лето (house) 19:30 - funvit (edm / synthwave) 20:00 - morj (electro) 20:30 - morj B2B Dead Camel (techno jam) 21:00 - KRYMOV (indie dance / experimental pop) 22:00 - iomo.0 (psychedelic techno / dubtechno) 22:30 - Sacred Sample (techno / dubtechno) 📍Клуб «Невротик», Москва, Яузская 5 🕗 16.04, начало: 18:00 💸 Вход свободный Событие только для музыкальных гурманов. Не пропусти! #cordscommunity#electronicmusic#dawless#noise#edm#electro#dubtechno#techno

Tibicen

@world_music_geek · Post #458 · 02.11.2023 г., 08:02

Various Artists – Digital Zandoli 2 (Heavenly Sweetness, 2017) #zouk#disco#synth#funk#electro#Haiti#Saint_Lucia#Martinique#Guadeloupe#West_Indies#France Продолжаем исследовать зук и фанк из французской Вест-Индии. Эта часть сборника состоит из записей, выпущенных в конце 80-х и начале 90-х, в период расцвета зука и синти-фанка. Spotify | AppleMusic | Bandcamp | VK

БАР ЦПР

@cprbar · Post #84 · 24.12.2025 г., 17:03

Друзья, 29 декабря в 20:00 мы приглашаем вас познакомиться с двумя творческими проектами: Gravitones и Evgenia Kozhevnikova - AQD Gravitones - это электронный дуэт, сайнс фикшн от музыки. Сторонники живого синтезаторного звучания и экспериментальных аранжировок, Gravitones неизменно отдают должное 8-битной музыке, брейк-биту и панк-року. А живой электронный перфоманс от AQD (Евгении Кожевниковой) - это синтез аналогового и цифрового звучания, импровизации и экспериментов. В лайве использованы культовые машины: Roland sh-101, Roland tr-8, Korg Electribe EMX-1, Arturia MicroFreak и другие. #electronicmusic#gravitones#aqd#live#electronic#pop#dance#synthpunk#electro 🕺 🕺 🕺 Вход свободный ПО ПРЕДВАРИТЕЛЬНОЙ БРОНИ по телефону: +7 995 600 1898. Можно звонить, также все мессенджеры привязаны. Количество мест ограничено! — Литейный пр., д. 28, три окна в правой части здания.