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

Резултати

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

Пребарај: #postrigaygallery

当前筛选 #postrigaygallery清除筛选

Postrigay Gallery представила новую выставку работ художников-шестидесятников «Хрупкость вне времени». «СУЩЕСТВУЕТ КРАСОТА НАСТОЛЬКО ХРУПКАЯ, НЕОПРЕДЕЛИМАЯ, ЭФЕМЕРНАЯ, ЧТО ОБЯЗАТЕЛЬНО ДОЛЖНА БЫТЬ ЗАКЛЮЧЕНА В ЖЕСТКУЮ РАМУ В ПРЯМОМ И ПЕРЕНОСНОМ СМЫСЛЕ - РАМУ ФОРМЫ, ИНАЧЕ ОНА УСКОЛЬЗНЕТ И ИСПАРИТСЯ, КАК ДРАГОЦЕННЫЕ ДУХИ ИЗ НЕЗАКРЫТОГО ФЛАКОНА» — Дмитрий Краснопевцев. Магистральной идеей проекта становится то, что невзирая на сложный временной период смысл останется один — стремление художников создавать и выходить за рамки окружающей реальности даже в условиях неопределенности, держа фокус на том, что близко сердцу. 🗓️ 14 ноября - 01 февраля ⛳️ Cube.Moscow, ул. Тверская, 3 (здание отеля The Carlton, Moscow, – 2 этаж) #галереялично#lichnogallery #postrigaygallery#были_лично

Интересно, как сегодня художники переосмысляют связь человека и природы. На выставке Postrigay gallery«Сад света» Маши Даниловской меня привлекло то, как она работает с границами. В ее живописи и керамике птицы и звери буквально растворяются в среде. Концепция строится вокруг гипотезы Геи (Земля как единый организм), но без излишней дидактики. Особое впечатление оставляет серия «Острова». С одной стороны — это архетип потерянного рая, хрупкого и самодостаточного, с другой автор уходит от географии в чистую абстракцию, превращая остров в метафору внутреннего состояния. Удивительной легкости и текучести первоначального рисунка на холсте Мария добивается создавая графику чернилами, переводя ее в цифровой коллаж и только затем она пишет маслом! 🗓️ до 24 мая ⛳️ул. Тверская, 3, -2 этаж #были_лично#postrigaygallery #машаданиловская#садсвета

Большой ивент прошел на прошедшей неделе в masters. Postrigay gallery открыли новую выставку резидента галереи Анны Дёминой«Растворится в закате пение птиц». Абстрактные пейзажи будто погружают в другой мир, описывая переживания, связанные с соприкосновением природы. Эмоционально, проникновенно! 🗓️ 22 октября - 16 декабря ⛳️ masters, Малый Патриарший пер, 5с1 #были_лично#аннадемина #masters#postrigaygallery

Пропустили вчера открытие в Postrigay Gallery, где представили персональную выставку Надежды Ягофаровой «Зеркало дней». Но вам от души рекомендуем, в экспозиции собраны сочные натюрморты и объекты, созданные художницей с 2020 года по настоящее время. Такие проекты помогают найти в повседневности что-то особенное, стоит просто остановиться. 🗓️ 20 февраля - 27 марта ⛳️Cube.Moscow, ул. Тверская, 3 #postrigaygallery#cubemoscow #надеждаягофарова#зеркалодней

Так, с биографией Зубарева разобрались, теперь о главном — его теории времени. Художник видел время как живое пространство и выделял целых шесть его видов: ✔️Плоское время. Здесь всё повторяется в чётком ритме, создавая ощущение бесконечного калейдоскопа. То самое избыточное время. ✔️Изогнутое время. Пространство искривлено — реальность живёт по иным законам. Здесь совмещены разные координаты: временные, пространственные и эмоциональные. Некое искаженное время. ✔️Разорванное время. Время распадается на части, а участники событий существуют в разных ритмах. Картина становится визуальной метафорой разорванного времени. ✔️Реликтовое время. Это «протовремя» — холодное и безвоздушное. Оно просто присутствует, не участвуя в событиях, подобно поверхности древнего зеркала. Время до человека. ✔️Фактическое время. Самое человеческое из всех — настоящее, конкретное. Это время жизни, дыхания, того самого «здесь и сейчас». ✔️Световое время. Автономное время будущего, где остаётся только энергия и свет. Картина становится источником свечения, а время существует как чистая энергия. P.S. Зубарев не просто рисовал — он создал целую философскую систему в красках. Теперь осталось определить, какое время вы чувствуете в своей жизни?! #были_лично#postrigaygallery #владиславзубарев#cubemoscow#раскрываявремя

Открываем для вас еще одного художника из плеяды нонконформистов. Вчера в Postrigay Gallery представили новую выставку — «Раскрывая время. Владислав Зубарев». Этот художник был настоящим «арт-Штирлицем» — днем работал инженером, а ночью создавал смелое искусство. Участник знаменитой выставки в Манеже 1962 года, которую раскритиковал Хрущев, Зубарев прошел путь от студии «Новая реальность» до собственных экспериментов со временем. Его метод прост и гениален: он доверял интуиции, пытаясь сделать время видимым и осязаемым. Владислав не просто рисовал, а буквально «останавливал мгновение», что звучало бы безумно, если бы не было так здорово. Так что эта выставка — отличный шанс открыть для себя имя, которое долго оставалось в тени, но точно заслуживает вашего внимания! 🗓️ до 21 января ⛳️ ул. Тверская, 3, -2 этаж #были_лично#postrigaygallery #владиславзубарев#cubemoscow#раскрываявремя

Вчера посвятили вечер Cube.Moscow, где галерея Postrigay провела открытие персональной выставки Кати Медведевой под названием«Таинство». Несмотря на почтенный возраст, 88-летняя художница лично присутствовала на вернисаже, что не может не вызывать восхищения и уважения к её преданности искусству. Как отмечал Марк Шагал: «Катя Медведева — это чисто русский талант, она так же любит цвет, как и я». Живопись стала для художницы способом отстраниться от повседневных забот и возвыситься над ними. В своих работах Медведева преобразует непростые жизненные обстоятельства и личные трагедии в чистоту и свет — это и есть то самое «Таинство», к которому стремится автор. Стоит заметить, что в начале весны в Cube.Moscow состоялось открытие 14-ти новых проектов. Для тех, кто еще не успел побывать — добавляем еще один повод к посещению арт-пространства. 🗓️ 1 апреля - 15 июня ⛳️ ул. Тверская, 3 (-2 этаж) #были_лично#postrigaygallery #катямедведева#таинство #cubemoscow