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

Резултати

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

Пребарај: #mbg

当前筛选 #mbg清除筛选
СОЛОДИН LIVE

@goodtraders · Post #8551 · 20.09.2024 г., 13:31

#MBG#Германия#авто 🔴 Акции Mercedes-Benz в Германии упали в пятницу после того, как производитель автомобилей класса люкс снизил прогноз прибыли на весь год. 👉 Автопроизводитель пересмотрел свой скорректированный прогноз доходности продаж до 7,5%-8,5%, что является резким падением по сравнению с предыдущим прогнозом в 10%-11%. 👆 Посмотрите на график: EPS успел уже упасть на почти 50% - и лично мне кажется, что это только начало... Самые дорогие товары длительного пользования первыми реагируют на снижение спроса - у людей просто нет ни возможности ни желания покупать эти товары по современным ценам. Падение покупательской способности населения обычно вызывает рецессию в экономике. За авто следом пойдёт электроника, дискреционные люксовые товары (у топовых брендов уже сокращаются продажи). Ждёмс...

嗨皮快乐屋北京

@hpklwbj · Post #168130 · 25.03.2026 г., 03:23

北京鸡哥🏠在读生🎨 07可看证 极品幼白纯 Age:07年 Height:166cm Cheat:D Weight:42kg ✨明朗干净 配合度高 美丽在线🍑雪白牛奶🥛肌. 皮肤超細膩 白皙滑嫩 🌟 南方小女孩小骨架, 所见即所得 🍭🈵️🈵️女友感 初恋白月光 极品女友体验 只接待高素质K 紧致 一碰就哗哗流水 • 𝐇𝐨𝐛𝐛𝐲兴趣/ 旅游 画画 阅读 烘焙… 等风等雨等你 💗 爆汁水蜜桃🍑 #朝阳双井 #首城国际 #白幼瘦#萝莉#mbg#学生

Crypto Headlines

@market_headlines · Post #27746 · 16.03.2026 г., 21:25

#анлок 🔓 ТОП разблокировок токенов с 16 марта по 23 марта! Cliff Unlocks: ▫️#ZRO - $55,53m ▫️#RIVER - $46,47m ▫️#BARD - $35,03m ▫️#ARB - $10,00m ▫️#MBG - $9,42m ▫️#YZY - $6,80m ▫️#KAITO - $6,45m Linear Unlocks: ▫️#RAIN - $86,51m ▫️#RIVER - $46,47m ▫️#SOL - $43,80m ▫️#CC - $28,89m ▫️#TRUMP - $25,63m ▫️#WLD - $13,64m ▫️#DOGE - $9,51m ▫️#ASTER - $7,39m ▫️#TAO - $7,13m P.S. Cliff Unlocks – разблокировка крупной порции токенов единовременно в конкретную дату. Linear Unlocks – постепенная разблокировка токенов в течение определенного периода (обычно каждый день или каждую неделю по части). Crypto Headlines

Crypto Headlines

@market_headlines · Post #28563 · 20.04.2026 г., 22:40

#анлок 🔓ТОП разблокировок токенов с 20 по 27 апреля! Cliff Unlocks: ▫️#UDS - $42,17m ▫️#ZRO - $41,39m ▫️#MBG - $17,45m ▫️#H - $10,98m ▫️#XPL - $9,28m ▫️#HYPER - $8,62m ▫️#LMTS - $8,25m ▫️#INIT - $7,45m ▫️#KAITO - $7,34m ▫️#SOSO - $5,65m ▫️#MON - $5,12m Linear Unlocks: ▫️#RAIN - $71,82m ▫️#SOL - $39,02m ▫️#CC - $28,53m ▫️#TRUMP - $17,66m ▫️#WLD - $9,65m P.S. Cliff Unlocks – разблокировка крупной порции токенов единовременно в конкретную дату. Linear Unlocks – постепенная разблокировка токенов в течение определенного периода (обычно каждый день или каждую неделю по части). Crypto Headlines