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

Резултати

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

Пребарај: #goodness

当前筛选 #goodness清除筛选
EKOLOG.UZ| ENG

@ekologuzenglish · Post #10069 · 24.10.2025 г., 12:02

🐾🔥 The Story of Scarlett — The Mother Cat Who Rushed Into Fire to Save Her Babies 💔🐱 Sometimes, true heroism doesn’t come from people, but from those who love unconditionally. 💖 This is how the world learned about Scarlett, a brave cat who, back in 1996, did something incredible — she ran five times into a burning garage to save her kittens. 🏚 It happened in one of the old garages in Brooklyn, New York, where Scarlett lived quietly with her kittens. But on the night of March 30, someone set the building on fire. Flames spread instantly, filling the place with smoke and unbearable heat. When the firefighters 🚒 arrived, they were stunned: they saw a cat running into the fire again and again, disappearing in the flames and coming out each time with a kitten in her mouth 🐈‍⬛🐈🐈‍⬛🐈🐈‍⬛ She carefully placed each baby in a safe spot, and despite the pain and fear, she rushed back into the fire to rescue the next one. 🔥 Each time she came out, she was weaker. Her fur was scorched, her ears and whiskers were burned, her paws were raw and blistered, and her eyes clouded from the heat… 😿 But she could only carry one kitten at a time, so she had no choice but to keep going. When the last, fifth kitten was finally safe, the now-blind Scarlett touched each baby with her nose, making sure all were alive ❤️ Only then did she collapse, unconscious… Deeply moved by her bravery, the firefighters rushed her and the kittens to a veterinary clinic 🏥 There, the vets treated and nursed them back to health. The story quickly made it into the New York Post 📰 — and it touched hearts all around the world. People sent letters, donations, and offers to adopt the little feline family. 😺 The kittens were soon adopted into loving homes. As for Scarlett, after recovering, she was adopted by a kind woman named Karen Wellen ❤️ In an interview, Karen said: “I will care for her as if she were my own child.” And she kept her promise 🙏 Scarlett lived 13 more happy years with Karen, never again knowing fear, pain, or hunger. Sometimes she would tremble in her sleep — as if remembering the fire — but she was always surrounded by love and safety. 🌷 🐾 Scarlett’s story became a symbol of motherly love, devotion, and courage. The media called her “Cat of the Century”, and millions of people around the world saw in her a reminder that even the smallest heart is capable of the greatest heroism 💫 💚 Let this story remind us all: Love is the power that can conquer even fire. 🔥 👇 ☘️ Read more inspiring stories and ecological news on @ekologuz 💌 Share your stories and suggestions through @eklguz_bot #ecology#animals#goodness#hero#ScarlettTheCat#ecologuz#animalheroes#love#motherhero🐾💚

Семеновский vs. Semenovskiy

@igor_semenovskiy · Post #3333 · 29.08.2025 г., 15:36

Вот и лето прошло, Словно и не бывало. На пригреве тепло. Только этого мало. . Всё, что сбыться могло, Мне, как лист пятипалый, Прямо в руки легло. Только этого мало. . Понапрасну ни зло, Ни добро не пропало, Всё горело светло. Только этого мало. . Жизнь брала под крыло, Берегла и спасала. Мне и вправду везло. Только этого мало. . Листьев не обожгло, Веток не обломало... День промыт, как стекло. Только этого мало. . Арсений Тарковский, 1967 г. . #лето#тепло#солнце#поэзия#стихи#творчество#искусство#добро#друзья#люьовь#прогулки#Москва#Зарядье#будущее#осень #summer#warm#sun#poetry#creativity#art#goodness#friends#love#walks#Moscow#Zaryadye#future#autumn