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

Резултати

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

Пребарај: #zilart

当前筛选 #zilart清除筛选
TASTE OF AFRICA🌞

@taste_of_africa · Post #327 · 20.04.2026 г., 09:11

TASTE OF AFRICA | Выставка в ЗИЛАРТ - «Предки, боги, жизнь»: читаем африканское искусство 🌍✨ Всем ценителям африканской культуры рекомендуем это погружение. Для каждого оно будет своим. https://zilartmuseum.ru/exhibitions/afrikanskoe-iskusstvo-predki-bogi-zhizn/ Небольшой обзор для вашего внимание: Африканская маска или скульптура в традиционных культурах, инструмент связи с миром предков, язык власти, памяти и знания. В выставке «Африканское искусство: предки, боги, жизнь» эта логика раскрывается как большой круг человеческого пути, от рождения до поминовения, и в этом есть особая красота и гармония. Вот 11 тем, через которые можно погрузиться в африканское искусство и увидеть, как оно работает 👇 Рождение / Предки 👣 «Рождение ребёнка, это возвращение предка». Поэтому образы материнства, куклы-обереги и фигурки близнецов предвещает продолжение рода и жизненную силу. Красота здесь сакральна: предков изображают в расцвете сил. Инициация / Посвящение 🔥 Посвящение во взрослость как символическая смерть и новое рождение. Маски «забирают и пожирают» подростков метафорически, оставляя на теле знаки и шрамы как память о переходе в новый статус. Семья / Брак 💍 Брак, союз общин, а ребёнка «растит вся деревня». В искусстве это видно в парных фигурах прародителей и в иерархии «отцов и детей» среди масок. Тайные общества 🔒 Маски принадлежат обществам, которые хранят знания, управляют обрядами, судят, воспитывают, сопровождают похороны. «Тайна» как закрытый язык и магические процедуры. Правитель / Власть 👑 Вождь и царь, политическая фигура, священный гарант благополучия. Отсюда парадные образы, регалии и «династические галереи» в бронзе и дереве. Война / Охота 🏹 Воин и охотник как идеал мужества. Но охота часто понимается как знание и философия леса. Фетиши-«охотники» и воинские маски, сила защиты и наказания. Звери / Люди 🐆 Животные в мифах, посредники между мирами. Тут маски могут собирать черты разных существ в одном «хтоническом» образе: задача - явить сверхъестественное. Престиж / Статус 💎 Искусство показывает «личность» через статус. Материалы тоже говорят: бронза, латунь, слоновая кость как знаки власти, вечности и права на память. Земля / Плодородие 🌾 Плодородие земли и продолжение рода есть единая система. Маски приходят на поля, благословляют посев и урожай, запускают круговорот жизни. Магия / Знание 🧿 Магия как практическое знание: лечение, предсказание, влияние на события. «Намоленные» предметы меняются внешне, патина и жертвенные следы фиксируют их ритуальную биографию. 11 Смерть / Память ⚱️ Похороны, переход и граница между мирами. Маски помогают душе не сбиться с пути к предкам и защищают живых. Тут «статуи тоже умирают»: предметы выводят из обряда, снимают патину, извлекают амулеты, а «силу» могут «пересадить» в новую вещь. Лучше один раз увидеть… 🗿Ритмическое путешествие продолжается - «Предки, боги, жизнь»🗿 #TasteOfAfrica#Африка#AfricanArt#АфриканскоеИскусство#Маски#Скульптура#Традиции#Культура#Наследие#Предки#Ритуалы#Инициация#ТайныеОбщества#Власть#Плодородие#Магия#Память#Выставка#Москва#ZILART#МузеиМосквы#АртГид#КудаПойти#Искусство