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

Резултати

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

Пребарај: #liban

当前筛选 #liban清除筛选
RT en français

@RTenfrancais · Post #80352 · 29.04.2026 г., 09:01

⚡️#Liban : plusieurs morts après des frappes israéliennes à Jibchit Plusieurs personnes ont été tuées dans la ville de Jibchit après des frappes israéliennes menées sur ordre du Premier ministre Benjamin Netanyahou, malgré le cessez-le-feu. Selon des médias libanais, une frappe a détruit un immeuble résidentiel, tuant plusieurs membres d’une même famille. Les secours ont travaillé toute la nuit pour rechercher des survivants sous les décombres. De son côté, l’armée israélienne affirme avoir visé des infrastructures du Hezbollah dans le sud du pays. RT en français • Osez questionner !

Hashtags

RT en français

@RTenfrancais · Post #80324 · 28.04.2026 г., 19:45

▶️Le bilan du conflit initié le 2 mars 2026 au #Liban s’est alourdi pour atteindre plus de 2 500 morts Notre reporter Antoine Cléraux se trouvait au Liban, en plein cœur des combats, lors du début de l’opération américano-israélienne. Quelle est la situation réelle sur le terrain ? Il est en studio avec nous pour en parler. RT en français • Osez questionner !

Hashtags

RT en français

@RTenfrancais · Post #80200 · 27.04.2026 г., 15:00

🎥La puissance douce du #Liban La Russie est venue à plusieurs reprises en aide au Liban : en 2006, après l’agression israélienne, elle a participé à la reconstruction des ponts dans le Sud-Liban. En 2024, elle a apporté une aide humanitaire. Aujourd’hui, des Libanais veulent rendre la pareille aux habitants des régions russes touchées par la guerre. RT en français • Osez questionner !

Hashtags

RT en français

@RTenfrancais · Post #79860 · 22.04.2026 г., 21:36

⚡️La journaliste libanaise Amal Khalil a été tuée par une frappe israélienne, rapporte Al Jazeera Elle a été retrouvée sous les décombres d’un bâtiment après une attaque israélienne dans la localité d’Al-Tiri, dans le sud du #Liban. RT en français • Osez questionner !

Hashtags

RT en français

@RTenfrancais · Post #79836 · 22.04.2026 г., 16:32

❕Un deuxième soldat français meurt au #Liban Emmanuel Macron a annoncé la mort du caporal-chef Anicet Girardin, grièvement blessé lors d’une embuscade au Liban attribuée au Hezbollah. Le militaire, engagé au sein de la mission de la FINUL, a été rapatrié en France, mais a succombé à ses blessures. L'attaque a déjà coûté la vie à un autre soldat français. RT en français • Osez questionner !

Hashtags

RT en français

@RTenfrancais · Post #79699 · 21.04.2026 г., 13:02

🛬Un avion spécial du ministère russe des Situations d'urgence a livré 27 tonnes d'aide humanitaire destinée à la population du #Liban RT en français • Osez questionner !

Hashtags

RT en français

@RTenfrancais · Post #79688 · 21.04.2026 г., 10:35

🇷🇺🇱🇧Aide humanitaire russe au #Liban Un avion Il-76 du ministère russe des Situations d’urgence a décollé pour Beyrouth avec plus de 27 tonnes d’aide destinée aux populations affectées par le conflit, sur instruction de Vladimir Poutine. Le chargement comprend des générateurs mobiles, des denrées alimentaires, des tentes et du matériel de première nécessité. Le vol retour doit permettre d’évacuer des citoyens russes et leurs familles. Cette opération s’inscrit dans une série d’envois récents, après l’acheminement d’aide vers l’Iran plus tôt en avril. RT en français • Osez questionner !

Hashtags

RT France actualités

@rt_fra · Post #40875 · 08.05.2026 г., 10:45

⏺Frappes meurtrières au #Liban Au moins 12 personnes ont été tuées jeudi 7 mai au cours de frappes israéliennes dans le sud du Liban, selon le ministère libanais de la Santé, malgré le cessez-le-feu toujours en vigueur. Onze morts, dont deux enfants, ont été déplorés dans plusieurs bombardements visant des villages de la région de Nabatieh. Une autre frappe dans le secteur de Marjayoun a également tué un ambulancier affilié au Comité islamique de la santé lié au Hezbollah. RT en français • Osez questionner !

Hashtags

RT France actualités

@rt_fra · Post #40128 · 29.04.2026 г., 15:33

💬#Liban : cinq membres d’une même famille ont été tués dans une frappe aérienne à Jebchit, selon des sources locales. L’attaque a détruit une maison dans un quartier résidentiel, alors que la zone se trouvait en dehors de la ligne de sécurité et que des habitants venaient de rentrer après le cessez-le-feu. RT en français • Osez questionner !

Hashtags

RT France actualités

@rt_fra · Post #40087 · 29.04.2026 г., 09:01

⚡️#Liban : plusieurs morts après des frappes israéliennes à Jibchit Plusieurs personnes ont été tuées dans la ville de Jibchit après des frappes israéliennes menées sur ordre du Premier ministre Benjamin Netanyahou, malgré le cessez-le-feu. Selon des médias libanais, une frappe a détruit un immeuble résidentiel, tuant plusieurs membres d’une même famille. Les secours ont travaillé toute la nuit pour rechercher des survivants sous les décombres. De son côté, l’armée israélienne affirme avoir visé des infrastructures du Hezbollah dans le sud du pays. RT en français • Osez questionner !

Hashtags

RT France actualités

@rt_fra · Post #40059 · 28.04.2026 г., 19:45

▶️Le bilan du conflit initié le 2 mars 2026 au #Liban s’est alourdi pour atteindre plus de 2 500 morts Notre reporter Antoine Cléraux se trouvait au Liban, en plein cœur des combats, lors du début de l’opération américano-israélienne. Quelle est la situation réelle sur le terrain ? Il est en studio avec nous pour en parler. RT en français • Osez questionner !

Hashtags

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