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

Резултати

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

Пребарај: #charityevent

当前筛选 #charityevent清除筛选
INHA University in Tashkent

@inha_uz · Post #8528 · 20.01.2025 г., 12:05

🌟 Join Us in Supporting the Children’s Hospice! 🌟 🗓Date: 25th of January 📍 Gathering Point: INHA University at 9:00 AM This event is dedicated to bringing love, care, and support to children in the hospice during their most challenging times. Let's come together to make a difference in their lives! ❤️ Your contributions and time as a volunteer can truly bring hope and smiles. 💬How to Help: ✅ Donate: Every little contribution matters 9860 3501 4923 6621(Aleksandra Kim) ✅ Volunteer: Be part of this meaningful event. For more details: @iut_charityy Let’s create a wave of kindness and show these children that they are not alone! 💕 #CharityEvent#ChildrenHospice#Volunteer#IUTCharity#MakeADifference

STAR VET BOOKS

@starvetbooks · Post #4967 · 22.02.2025 г., 07:01

On Sunday, February 23, 2025, we will be holding a blood donation, dog adoption, and fundraising program in collaboration with Ahadu Rotaract Club at the Red Cross compound around Addis Ababa Stadium starting 9AM To those who want to donate: - Food (Rice) for feeding purpose - Pet beds - Comfy blankets - Medications - Pet toys - Dry pet foods - pet accessaries We will gladly be waiting, the program will be held until 5pm. Come, save lives by donating blood, create a family by adopting dogs! #BloodDonation#DogAdoption#CommunityService#AddisAbaba#Ethiopia#SaveLives#GiveBack#AnimalRescue#Rotaract#AhaduRotaract#Fundraising#CharityEvent https://t.me/starvetbooks

Мирослава Карпович

@m1r0slavakarpovich · Post #441 · 31.08.2022 г., 15:01

ПРОШУ ВАШЕГО ВНИМАНИЯ Дорогие Подписчики🤝 Собрать ребенка к школе — непростая задача для семей, оказавшихся в трудной жизненной ситуации. Благотворительный фонд «Дари еду» @dariedu❤️ хочет поддержать семьи, которым не справиться без помощи других людей, и немного облегчить ежедневные заботы. А также поздравить детишек с началом нового учебного года — и подарить наборы к 1 сентября. Как присоединиться к помощи? ⁃ Зайти на сайт (или ССЫЛКА В ШАПКЕ ПРОФИЛЯ)✏️ https://dariedu.ru/1september?utm_source=instagram&utm_medium=blogger&utm_campaign=m1r0slava_karpovich и сделать пожертвование любой суммы или оформить подписку на ежемесячные пожертвования. Подписки очень важны для проекта, так как позволяют планировать объемы оказываемой помощи; ⁃ рассказать о проекте своим друзьям, знакомым, семье, поделиться в социальных сетях. Попросить их также оформить подписку по мере своих возможностей. Давайте поддерживать друг друга!Это самая большая сила,которая есть между людьми,это бесконечный поток тепла,в котором хотят быть абсолютно все ..каждый из нас способны на этот беспрерывный обмен ,каждую секунду,а главное,что это возможно даже на самых дальних дистанциях-наши руки готовы дотянуться от одного краешка земли ,до другого..найдите пару минут своего времени, и поддержите тех,кому сейчас так необходима Ваша тёплая рука помощи!🤝✨🤍 Благодарим всех и каждого ! #фонд#дариеду Photo @konstantin.rivera 🤍 MUAH @richy_yuliana🤍 Style @olgasheremeta🤍 #поддержка#дети#дружба#purelove#moodoftheday#vibes#love#friendship#charity#charityevent#1сентября#сборывшколу#спасибо#благодарность#длявас#пронас#провсех#всемхорошегодня #🤝

Мирослава Карпович

@m1r0slavakarpovich · Post #404 · 10.08.2022 г., 07:03

Вокруг нас много людей ,которым нужна наша поддержка, будь то близким нам или незнакомцам..начиная от бабушки проходящей мимо с четырьмя пакетами, останавливающейся возле каждой лавочки, чтобы передохнуть, либо ребёнка, у которого родители рано ушли из жизни, и теперь его растит бабушка с инвалидностью , и ему прямо сейчас надо быть взрослым. Инстинкт уже помогает ему понимать уровень отвественности за себя и бабушку..и всех близких.. Так случилось в жизни маленького Богдана, он маленький ,но большой Человечек с широко открытыми глазами, кушающими Мир от краюшки до краюшки, с ямочками на щеках от краешка до краешка своей улыбки! На фотографии Богдану уже исполнилось 7 лет, мы всей командой очень хотели подарить ему, его Бабушке и маленьким Друзьям праздник, чтобы это ощущение чуда никогда не выветривалось, чтобы в его сердце всегда оставалось место его внутреннему ребёнку, чтобы он знал свою важность в этом Мире, чтобы душа его не черствела, потому что в Мире есть человеческое тепло, наша поддержка.. ведь протягивая свою руку помощи, каждый из нас стал его Другом, подарившим Богдану свою безусловную любовь НА ВСЮ ЖИЗНЬ- на всю жизнь.. Благодарю фонд @dariedu за доверие, Куратора Лену(Чудо Мама Женщина), Сержулю @efremov_actor , наш театр @moscomedytheatre ,Мишу Авербаха @misha_averbakh ,Ванечку @shutoff_sound , Надю Азарову ,администрацию сельского поселения Теряевское ,всех пришедших ,моих Родителей @nuzza_ka за все ,чему меня научили, Мир, за то, что дарит нам таких Друзей , опыт и возможность быть у Друг-Друга!Просто любите Людей,любите просто!Обнимаю всех и каждого!✨🤝🤍 #доброеутро#дариеду#фонд#поддержка#дети#дружба#purelove#moodoftheday#vibes#love#friendship#charity#charityevent#сказка#краснаяшапочка#спасибо#благодарность#длявас#пронас#провсех#всемхорошегодня #🤝