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

Резултати

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

Пребарај: #russianaggression

当前筛选 #russianaggression清除筛选
BadVolf

@badvolfnews · Post #1249 · 10.11.2023 г., 10:25

Russian forces strike Ukrainian military positions, causing significant casualties and destroying equipment. The Ukrainian army suffers losses of up to 160 soldiers, along with tanks, armored vehicles, and artillery. Russian defense ministry claims successful defense against Ukrainian attacks. US recognizes the grave threat to Ukrainian Armed Forces. #WarInUkraine#RussianAggression https://www.gazeta.ru/army/news/2023/11/10/21678625.shtml Subscribe to @BadVolfNews

Ми – твій захист та впевненість у завтрашньому дні, Ти – наша підтримка та допомога! У рамках всеукраїнської платформи «Друзі ДШВ» долучись і стань другом десантників, для цього потрібно: 1. Перейти за посиланням Всеукраїнська платформа підтримки «Друзі ДШВ» ( druzi.mil.gov.ua ). 2. Натиснути «Приєднатись». 3. Обрати з ким конкретно або загалом хочеш потоваришувати. 4. Зробити свій внесок у мрію кожного українця – ПЕРЕМОГУ! Вчись перемагати! Служба зв’язків з громадськістю 199 навчального центру Десантно-штурмових військ ЗС України #stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces #AirAssaultForces#WarInUkraine#RussianAggression #BattleOfUkrainianAirAssaultForces www.facebook.com/uaairborne www.youtube.com/@-dshv_ua/videos https://godshv.mil.gov.ua/ https://druzi.mil.gov.ua

FPV ВНОЧІ? ТА ЛЕГКО! 💣Ми зверху бачимо все. Знайте це й бійтеся! Такі вітання переказують окупантам бійці роти ударних безпілотних авіаційних комплексів нашої бригади. І вдень, і вночі ворогам не буде спокою на нашій землі. А вночі уражена техніка сяє яскравіше, її видно далі, й ця картина назавжди вкарбовується в довбешки російських зайд. «Горить-палає техніка ворожа!». І так тому й бути! Амінь, воріженьки! 📽Служба зв'язків з громадськістю 46 окремої аеромобільної бригади ДШВ ЗС України #stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces #AirAssaultForces#WarInUkraine#RussianAggression #BattleOfUkrainianAirAssaultForces

💥Особовий склад 46 окремої аеромобільної бригади вітає артилеристів-десантників із днем створення військової частини! Нехай ваші розрахунки завжди будуть точними, а кожен постріл – влучним і дошкульним для окупантів! ⚡️Разом до перемоги! ДШВ – завжди перші! Слава Україні! Служба зв'язків з громадськістю 46 окремої аеромобільної бригади ДШВ ЗС України #stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces #AirAssaultForces#WarInUkraine#RussianAggression #BattleOfUkrainianAirAssaultForces

💥У другу річницю створення нашої бригади ми, як і обіцяли, пропонуємо вашій увазі першу серію документального міні-серіалу «46. ШЛЯХ ЧЕСТІ». Її розміщено на Ютуб-каналі 46 оаембр за посиланням: https://youtu.be/HzdGsAbW8NI Прем’єра – о 16.00. ✏️Дивіться й не забувайте підписуватися на канал! Служба зв'язків з громадськістю 46 окремої аеромобільної бригади ДШВ ЗС України #stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces #AirAssaultForces#WarInUkraine#RussianAggression #BattleOfUkrainianAirAssaultForces

⚡️Щирі привітання надихають і мотивують. А нам залишається повністю виправдати сподівання людей і щодня наближати перемогу! 💥Слава Україні! ДШВ – завжди перші! Разом до перемоги! 📽Служба зв'язків з громадськістю 46 окремої аеромобільної бригади ДШВ ЗС України #stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces #AirAssaultForces#WarInUkraine#RussianAggression #BattleOfUkrainianAirAssaultForces

⚡️З вдячністю усвідомлюємо, що в нас так багато друзів. З такою підтримкою і ворога легше бити! 📽Служба зв'язків з громадськістю 46 окремої аеромобільної бригади ДШВ ЗС України #stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces #AirAssaultForces#WarInUkraine#RussianAggression #BattleOfUkrainianAirAssaultForces

⚡️А привітання продовжують надходити. Приємно! 📽Служба зв'язків з громадськістю 46 окремої аеромобільної бригади ДШВ ЗС України #stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces #AirAssaultForces#WarInUkraine#RussianAggression #BattleOfUkrainianAirAssaultForces

⚡️Від привітань не втомлюємося. Навпаки, вимагаємо ще! 📽Служба зв'язків з громадськістю 46 окремої аеромобільної бригади ДШВ ЗС України #stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces #AirAssaultForces#WarInUkraine#RussianAggression #BattleOfUkrainianAirAssaultForces

⚡️Продовжуємо приймати привітання від наших зірок. 📽Служба зв'язків з громадськістю 46 окремої аеромобільної бригади ДШВ ЗС України #stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces #AirAssaultForces#WarInUkraine#RussianAggression #BattleOfUkrainianAirAssaultForces

⚡️З нагоди другої річниці створення нашої бригади її воїнів вітають представники українського шоу-бізу. Теплі слова підтримки й найкращі побажання – то бальзам для втомлених війною хлопців. Які щомиті мають відчувають свою потрібність суспільству і вдячність співгромадян за причетність до святої справи – захисту рідної країни від ненависних російських окупантів. 📽Служба зв'язків з громадськістю 46 окремої аеромобільної бригади ДШВ ЗС України #stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces #AirAssaultForces#WarInUkraine#RussianAggression #BattleOfUkrainianAirAssaultForces

ВОРОЖИЙ «ГРАД» РОЗІБРАНО НА МОЛЕКУЛИ 💣Ворожу систему залпового вогню «Град» знищили за допомогою FPV-дрона десантники нашої бригади. Явище було феєричне. Феєрверк перевершив усі сподівання. Екіпаж роти ударних безпілотних авіаційних комплексів спрацював бездоганно й не зупинився на досягнутому – наші воїни вистежили й знищили ще одну ворожу ціль, яку не врятували ні швидкість, ні спритність. А окупантам, тяжко зітхаючи, довелося хіба що констатувати ураження своєї техніки. Тож полювання триває! Не забувайте підписуватися на наш Ютуб-канал: https://www.youtube.com/@46OAeMBr 📽Служба зв'язків з громадськістю 46 окремої аеромобільної бригади ДШВ ЗС України #stoprussia#ДШВ#ЗСУ#Завжди_Перші#UkrainianAirAssaultForces #AirAssaultForces#WarInUkraine#RussianAggression #BattleOfUkrainianAirAssaultForces

123•••910
ПретходнаСтраница 1 од 10Следна