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

Резултати

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

Пребарај: #brad

当前筛选 #brad清除筛选
科技&趣闻&杂记

@kejiqu · Post #4175 · 17.02.2026 г., 10:42

Epstein 文件导致全球多位商业和政治领袖的职业生涯告终 最新披露的 Epstein 文件导致全球多位商业和政治领袖的职业生涯告终。Tom Pritzker 辞去海亚特酒店执行主席职务,Brad Karp 卸任保罗·魏斯律师事务所主席,Kathy Ruemmler 辞去高盛首席法律顾问职务,Casey Wasserman 计划出售经纪公司,Peter Attia 卸任 David Protein 首席科学官,Steve Tisch 受到 NFL 调查,Howard Lutnick 面临辞职呼吁。欧洲方面,Peter Mandelson 接受调查,Morgan McSweeney 辞职,Thorbjørn Jagland 被指控犯有加重腐败罪,Jack Lang 辞去阿拉伯世界研究所职务。中东地区,Sultan Ahmed bin Sulayem 被替换为 DP World 董事长兼 CEO。这些事件源于 Epstein 文件揭示了这些人物与已故金融家 Jeffrey Epstein 的关联。Axios 🏷#Epstein#文件#Brad#Karp#Jeffrey#Epstein 📢频道👥群组📝投稿

Staats-Simulation

@StaatsSimulation_BRD · Post #4025 · 02.12.2025 г., 21:46

Vom Nationalstaat zum Privatunternehmen Auszug aus Unser Geldsystem von Andreas Clauss Wie aus einem völkerrechtlichen Staat mit Volk ein privatrechtliches Unternehmen mit Personal wird, erklärt Andreas hier in gewohnt charmanter Manier am Beispiel von Deutschland und der BRD. Zusendung 🙏 #GG#Völkerrecht#BRiD#BRaD #Betrug#Clauss Wahrheit macht frei und Freiheit macht wahr 👉https://t.me/FrMaWa Denk selbst und informiere Dich 🧩