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

Резултати

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

Пребарај: #palestine

当前筛选 #palestine清除筛选

Ik geloof dat alleen een grote oorlog, een handelsoorlog of een langdurige economische recessie ertoe zou leiden dat Europa en de Verenigde Staten hun militaire uitgaven uit balans zouden brengen, en dat zou het moment zijn waarop Israëls macht zou verzwakken. De bevrijding van Palestina verwijst naar het antikolonialisme en de onlangs onafhankelijk geworden landen in Azië, Afrika en Latijns-Amerika na de Tweede Wereldoorlog. Na de Tweede Wereldoorlog waren Europese landen ook bezig met de wederopbouw en verzwakte hun overzeese koloniale invloed. #Palestine

Hashtags

前線的民眾及武裝 感謝: 也門 黎巴嫩 伊朗 沒有: 遜尼派國家及組織, 因為所有遜尼派國家不是以色列同盟就是投降給以色列。 (緊記: 加薩/巴勒斯坦組織是遜尼派, 但是只有什葉派國家及組織會付出人命和軍事支援他們) https://t.me/NEWWORLDORDYR/29301?single Er zijn geen soennitische landen en organisaties omdat alle soennitische landen bondgenoten van Israël zijn of zich aan Israël hebben overgegeven. (De bovenstaande opmerkingen hebben geen betrekking op soennitische mensen, maar zijn alleen gericht op de elites van de soennitische samenleving) #Palestine

Hashtags

POPULAR FRONT

@popularxfront · Post #6117 · 01.05.2026 г., 15:01

🇵🇸#Palestine: Gaza's Radaa resistance forces, also known as the "Deterrent Forces", have ambushed a group of Israeli-backed militias in Khan Yunis, Gaza, using an IED. The ambush and the footage are dated April 29th.

Hashtags

POPULAR FRONT

@popularxfront · Post #5565 · 22.03.2026 г., 11:43

🇵🇸#Palestine: Footage showing Hezbollah militants targeting IDF positions in the Northern District of Palestine using a Grad MLRS rocket system two days ago. (via @conflictarchive)

Hashtags

POPULAR FRONT

@popularxfront · Post #5142 · 26.02.2026 г., 22:00

🇵🇸#Palestine: A 14-year-old Palestinian boy, Jad Jadallah, was shot and killed at close range by Israeli troops during a raid in al-Far'a refugee camp in the occupied West Bank last November. Footage shows one of the soldiers shooting at the boy multiple times before leaving him bleeding on the ground, as the IDF blocked ambulances from reaching him for over 40 minutes. The 14 troops present then casually remained around him as he bled to death. Eyewitness accounts and verified BBC footage show a soldier placing a rock next to Jad after he was shot in an attempt to stage evidence for the murder, even as the boy raised his hands pleading for help. An IDF spokesman claimed he threw a rock, but video evidence completely contradicts this. Despite claims of providing "initial aid," footage shows the troops offered no assistance. After the shooting, Israeli troops have refused to provide aid and have never released any details on the killing. Israel has also refused to return the body.

Hashtags

POPULAR FRONT

@popularxfront · Post #4491 · 13.01.2026 г., 14:51

🇵🇸#Palestine: A gold shop was allegedly robbed in Hebron, West Bank, by thieves disguised as IDF soldiers. The suspects were armed with IDF-issued carbines, including the M4 and Menusar. (📹 via @war_noir)

Hashtags

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