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

Резултати

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

Пребарај: #archive

当前筛选 #archive清除筛选
Rave me or hate me

@ravemeorhateme · Post #20415 · 13.02.2026 г., 04:56

Еще одно архивный фильм и Нью-Йорка 2018 года которое я снимала на седьмой айфон, а монтировал наш друг А я пока пишу продолжение своих приключений в США. И вот после череды конфетно-розовых хоть и местами драматичных событий история приближается к моей жизни в гетто НЙ #archive

Hashtags

Rave me or hate me

@ravemeorhateme · Post #20382 · 09.02.2026 г., 13:25

Архивчик из Нью-Йорка перед рассказом моей жизни в гетто в 2014 Это видео образца 2019 когда мы жили два месяца в Гарлеме и это давно уже вполне себе респектабельный район. Снимала на 7 айфон, кажется. А монтировал наш друг #archive

Hashtags

Rave me or hate me

@ravemeorhateme · Post #20345 · 05.02.2026 г., 18:16

Еще один архив. Моя первая поездка в Штаты в условную командировку ибо виза дает право посещать страну как турист или для деловых переговоров без возможности работать Я до сих пор не понимаю почему этот человек меня пригласил на несколько дней в Атланту снимать бэкстейдж «Тупой еще тупее 2», где он увидел мои фотографии и как нашел меня. Он сказал, что не помнит. Впрочем, какая разница 🙂 На фото со мной Charles B. Wessler в последний день перед моим возвращением в Россию через НЙ с паузой три дня в Большом яблоке. В итоге те три дня изменили мою жизнь навсегда и задали новый вектор- ежегодные поездки в течении 7 лет в НЙ на месяц-два. Хотя я не люблю Америку, а в Атланте мне не понравилось решительно все. Но Нью-Йорк- вершина мира хоть этот мир и по сей день не мой от слова совсем С Чарли мы иногда общаемся до сих пор и я даже ездила к нему в гости в одну из след визитов в Штаты. После случая когда меня выгнали за красную помаду встречаясь с Чарли я неизменно крашу губы в яркий цвет. Вообще помада сыграла роковую роль и мне даже оплатили отель и счет за бар постфактум хотя изначально была договоренность только по оплате билетов. Красная помада- это сила 🙂 Atlanta 2013 #archive

Hashtags

Rave me or hate me

@ravemeorhateme · Post #20343 · 05.02.2026 г., 07:51

Привет, коты! Сегодня уже четверг, а значит финишная прямая перед уик-эндом Пока я активно начала вести канал и вернуть вашу лояльность и интерес не так то просто, что более чем логично ибо не вела я паблик/ вела хаотично будучи в трипах долгое время. В общем, статистика пока хромает, но я упертая. На данный момент неплохо заходят разные архивные фотки поэтому ловите мой образ 2014 года и именно с такой стрижкой и ярко-рыжим цветом я поехала на два месяца в Большое яблоко когда город мне покоя не давал и снился каждую ночь. Тогда меня стригла моя муза и по совместительству мой стилист и мы очень старались при подготовке меня к столь серьезному путешествию. Получилось весьма по Нью-Йоркски. И да, я скучаю по этим инстаграмным фильтром и пятому айфону 🙂 P.S сегодня продолжу рассказ про мои приключения в Большом яблоке и не все там всегда было гладко. Чего там только не происходило… #archive #

Hashtags

Rave me or hate me

@ravemeorhateme · Post #20341 · 04.02.2026 г., 10:24

Ездили мы как-то на шоукейс Монастерио в Казанский клуб «Werk». Он очень рейвовый, что-то между Агломератом и Мутабором. Плюс Татарстан- моя Родина. Круто было в ту ночь! Весна 2022 года #archive

Hashtags

Rave me or hate me

@ravemeorhateme · Post #20312 · 03.02.2026 г., 13:02

Не знаю жив ли «Starlight» на Добрынинской/Октябрьской сейчас. Раньше частенько туда ходили поэтому платье для этой карточки было выбрано не случайно 🙂 Еще один архив. Год примерно 2015-2016 #archive

Hashtags

Rave me or hate me

@ravemeorhateme · Post #20241 · 29.01.2026 г., 11:21

Еще одно архивное фото самого начала 2010-х, но мохито в руках все же- отголоски нулевых. Пришли на день рождения к другу, а там актер Евгений Стычкин. Ушла эпоха эххх #archive

Hashtags

Rave me or hate me

@ravemeorhateme · Post #20226 · 28.01.2026 г., 16:38

Еще одна архивная карточка, на этот раз из 2010-х Нью-Йорк, Сохо, на квартирнике у Бориса Гребенщикова. Фотография снята легендарным Павлом Антоновым. Я с рыжими волосами Январь 2014 #archive

Hashtags

Rave me or hate me

@ravemeorhateme · Post #20190 · 27.01.2026 г., 05:42

Помню вам заходили архивы с лихих нулевых. Вот, пожалуйста. 2005 года, мне 22. Я пытаюсь быть на стиле и собрать лук в стиле бохо, копирую фотографию с вискарем из какого-то fashion журнала и на голове химия прости, Господи #archive

Hashtags

Palestine Updates 🇵🇸⚔️

@Palestine_Updates · Post #11201 · 17.04.2026 г., 04:39

Syria - #Archive The Final Audio of Abu al-Fida Beit Jinn, A Mujahid in HTS' Red Bands Elite Brigades: On January 28, 2020, seven Red Bands heroes launched an operation against Assad regime forces backed by the Russian and Iranian armies in the city of Maarat al-Nu’man, in the Idlib countryside. While the other Mujahideen had withdrawn and the enemy believed the city had been fully secured, these heroes pledged allegiance to death. They fortified themselves within the city’s buildings and alleys and resisted until the end. They inflicted dozens of casualties on the occupying forces, including the killing of four high ranking Assad regime officers and three Russian soldiers. May Allah accept them into the highest ranks of Paradise and reward them abundantly. Abu al-Fida (center), pictured alongside the others brothers who carried out the operation. @Palestine_Updates

Hashtags

Palestine Updates 🇵🇸⚔️

@Palestine_Updates · Post #11199 · 17.04.2026 г., 04:18

Syria - #Archive Martyr Abu Ali al-Umari: Ammar, known as "Abu Ali," was a young Alawite from the eastern Homs countryside who served in the Assad regime's army. In 2013, he was captured by Jabhat al-Nusrah fighters in Morek in the northern Hama countryside. During his captivity, Abu Ali was treated kindly by the fighters, who provided him with new clothes, and taught him how to pray. He said that he grew to appreciate their character and their treatment of prisoners, which eventually led him to discover Islam. Jabhat al-Nusrah had contacted his direct superior, a Colonel in the regime's army, to negotiate a prisoner exchange. The group informed the Colonel, "We have one of your tank commanders." The colonel said he would consult the general in charge, and upon his return, he reportedly said, "I heard it with my own ears"—"No one wants him." Abu Ali remained with Jabhat al-Nusrah for approximately nine months until the capture of a member of the Assad regime's special forces by the Mujahideen led to new negotiations. He was then transferred to Aleppo, where Ahrar al-Sham fighters were stationed, in preparation for a prisoner exchange. However, upon arrival, a surprise unfolded: Abu Ali and his companion decided to escape before they could be returned to the regime. Abu Ali headed toward Hama to join the ranks of Jabhat al-Nusrah, while his companion went toward Idlib. A commander welcomed him with clean clothes, and over the next few years, Abu Ali fought for the group, fully converting to Islam and learning the fundamental principles of the religion. The defector sent a message to those still fighting for the regime, urging them to defect before it was too late. Abu Ali participated in several major battles alongside the Mujahideen, most notably the epic battles in the southern Aleppo countryside against regime forces and Iranian militias. During the battle of al-Eis, he even successfully captured a T-90 tank. He registered himself on the "martyrdom-seekers" list; however, he was martyred a few days prior in 2016 in the southern Aleppo countryside, after his tank was struck by a Kornet missile. May Allah have mercy on him and accept him.

Hashtags

ПретходнаСтраница 1 од 4Следна