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 слични објави

Пребарај: #nivea

当前筛选 #nivea清除筛选
Chollazo Exprés 🔥 Ofertas y Descuentos

@ChollazoExpres · Post #6067 · 31.03.2026 г., 08:59

👟 ¡Martes de renovación con chollazos en moda y cuidado personal! Hoy destacan las zapatillas Puma Club II Era por solo 27€ usando el cupón y una oferta espectacular en protectores solares Nivea con un 70% de descuento en la segunda unidad. Para el hogar, el potente cepillo de vapor Rowenta de 2000W baja de precio, ideal para dejar la ropa perfecta en segundos. También traemos seguridad para tu coche con la Dashcam a mitad de precio, diversión para los peques con bloques magnéticos y una crema con péptidos para lucir piel radiante. 🧴🚗 👇 Selección del día: 🔥 Puma Club II Era Sneaker Unisex por 27,0€ (con cupón) 🔗https://amzn.to/4sGw2SG 🔥 -70% dto en 2ª ud en Protectores Solares Nivea 🔗https://amzn.to/4cfkHTQ 🔥 Rowenta Cepillo de Vapor 2000 W por 59,9€ (-29% dto) 🔗https://amzn.to/4v30w2Z 🔥 Dashcam Cámara para Coches por 27,0€ (-47% dto) 🔗https://amzn.to/3NWjTtU 🔥 Bloques de Construcción Magnéticos por 20,0€ (-52% dto) 🔗https://amzn.to/4v0IePZ 🔥 Crema hidratante con péptidos por 10,8€ (-44% dto) 🔗https://amzn.to/4m1t74t #Puma#Nivea#Rowenta#OfertasAmazon#Ahorro 📲 No te pierdas ni uno, síguenos en directo: 🔗https://whatsapp.com/channel/0029VbB9FRYEQIafeiqslX2F

Chollazo Exprés 🔥 Ofertas y Descuentos

@ChollazoExpres · Post #5988 · 04.02.2026 г., 17:24

🧹 ¡Miércoles de limpieza fácil y deporte! Hoy Amazon rompe el mercado con dos ofertas estrella: el robot aspirador Conga por solo 99€ (¡menos de 100€ por olvidarte de barrer!) y las zapatillas Adidas Galaxy por 29,9€. También tenemos pack de tuppers a mitad de precio y descuento en Loctite para las pequeñas reparaciones. 🏠👟 👇 Selección del día: 🤖 Conga Robot Aspirador y Friegasuelos por 99€ (-54% 🔥) amzn.to/4rwsnpI 👟 Adidas Galaxy 7 Zapatillas por 29,9€ (-45% 🔥) amzn.to/4af4xaS 🍱 Amazon Basics 3 Tuppers por 6,6€ (-47% 🔥) amzn.to/4qARuHf 🧴 2ª unidad al 50% en Productos Nivea amzn.to/45MLiUX 🔧 Loctite Pack 3 Super Glue-3 por 4,8€ (-39% 🔥) amzn.to/49Xbw9F 🏠 Zapatillas de Casa Espuma de Memoria por 14,9€ (-32% 🔥) amzn.to/3ZetzCb #HogarInteligente#Conga#Adidas#Nivea#Ahorro