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

Резултати

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

Пребарај: #netanjahu

当前筛选 #netanjahu清除筛选
des Geyers schwarzer Haufen

@FlorianGeyer2024 · Post #3054 · 06.12.2025 г., 11:11

🚨🇮🇱🏴‍☠️💥🔥🇵🇸 Israels Völkermord in Gaza - Waffenstillstand eine Illusion, Entvölkerung Gazas eine düstere Realität Der Waffenstillstand in Gaza existiert nur auf dem Papier, argumentiert Responsible Statecraft, das Online-Magazin des Quincy Institute in DC. 🌏 Die israelischen Angriffe auf Gaza gehen weiter, wenn auch langsamer 🌏 Zwischen dem 10. Oktober und dem 2. Dezember soll Israel den Waffenstillstand Berichten zufolge 591 Mal durch Luftangriffe, Artillerie und direkte Schüsse verletzt haben 🌏 In diesem Zeitraum meldete das Gesundheitsministerium Gazas 347 getötete und 889 verletzte Palästinenser 🌏 Die israelischen Verluste in Gaza bleiben unklar, abgesehen vom Rafah-Zwischenfall: Israel behauptet, ein Soldat sei getötet worden, Hamas bestreitet eine Beteiligung 🌏 Der Waffenstillstand ist stark zugunsten Israels geneigt und gibt Tel Aviv genügend Schlupflöcher, um die Besetzung Gazas aufrechtzuerhalten und umfassende Angriffe zu starten, bemerkt das Online-Portal Chancen, dass der Waffenstillstand hält? Laut RS gering 🔴 Israels Premierminister Netanyahu setzt weiterhin auf Krieg, um von seinen Strafverfahren abzulenken 🔴 Seine rechtsgerichtete Koalition braucht den Konflikt, und er braucht die Koalition, um an der Macht zu bleiben 🔴 Insgesamt sieht RS wenig Chancen, dass der Großteil des 20-Punkte-Plans umgesetzt wird Internationale Stabilisierungsstreitkraft 🔴 Die Trump-Administration hat Schwierigkeiten, Länder dafür zu gewinnen 🔴 Warum? Internationale Akteure wissen, dass die israelischen Militäroperationen trotz der Waffenstillstandsansprüche weitergehen 🔴 Die Entwaffnung der Hamas bleibt ein großes Hindernis: Ausländische Friedensstifter können es nicht bewältigen, und arabische Staaten vermeiden es, Israels „schmutzige Arbeit“ zu übernehmen ➡️ In der Zwischenzeit macht Israel das Leben in Gaza unerträglich, indem es nur 20 % der vorgeschriebenen humanitären Hilfstransporte durchlässt, so RS unter Berufung auf das UN-Büro für Projektservices. Quelle Link ℹ️ Bitte keine (schriftlichen) Kommentare! Danke! 👀 Teilen kann zum Aufwachen beitragen! ✨🆕🌐Hauptkanal ✨▶️🌐 Videokanal ✨▶️🙂Funnykanal #Israel#Netanjahu#Zionisten#Völkermord#Kriegsverbrechen#Gaza#Palästina

Kampf für unsere Zukunft ❣️

@Kampf_fuer_unsere_Zukunft · Post #51657 · 28.03.2026 г., 23:13

‼️Der französische Richter Nicolas Gouyou, der beim IStGH einen Haftbefehl gegen Netanjahu erlassen hat...‼️ • Visa und Mastercard haben alle meine Karten gesperrt • Ich kann keine Einkäufe tätigen • Ich bin Richter, werde aber wie ein Krimineller behandelt • Richter, Anwälte und Politiker werden eingeschüchtert • Ein Kollege sagte mir, mein Name werde erst nach Ablauf von Trumps Amtszeit von der schwarzen Liste gestrichen • Trotz der Intervention des französischen Präsidenten haben die US-Behörden nicht reagiert Quelle: Ramy Abdul #Zensur#Justiz#Richter#SchwarzeListe#Netanjahu#Haftbefehl#Frankreich#Kartensperre TEILEN Folgt mir auf Telegram ↕️↕️↕️ https://t.me/Kampf_fuer_unsere_Zukunft Chat-Kanal ⬇️⬇️⬇️ https://t.me/IavYc2SRFdY1OGY6