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

Резултати

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

Пребарај: #newbalance

当前筛选 #newbalance清除筛选

👟 Zapatillas New Balance 1000D #newbalance ✅ Oferta: 102,00€❌ PVP: 170,00€⁣ ¡Viaja a los 2000 pisando más fuerte que nunca! Las New Balance 1000 rescatan un icónico estilo futurista y atrevido, combinando una llamativa estética de paneles superpuestos con una amortiguación excepcional para tu día a día. Es la silueta retro perfecta para destacar en cualquier look urbano, aportando personalidad y confort a partes iguales. 📏 Disponibles en todas las tallas salvo la 36 y la 45. ➡️https://is.gd/6HRoM6 📣 Síguenos: @compradiccion 📱Síguenos en TikTok: https://www.tiktok.com/@compradiccion 🌎compradiccion.com

Hashtags

Chollosmania

@chollosmania · Post #18859 · 11.01.2022 г., 14:16

#NewBalance🇪🇸🌎🛒🛒BUEN PRECIO🇪🇸💲 💯Zapatilla New Blanace💯 ❌ Precio antes: 100 Euros ✅ Precio oferta: 70 Euros 🌍https://bit.ly/3zPeaud 🎁chollosmania🎁

Hashtags

KICKSADDICTION

@kicksaddiction · Post #5160 · 28.03.2025 г., 15:10

New Balance x Miu Miu 530 SL «Black» 🐈‍⬛ Этот эксклюзивный кожаный стиль с винтажным эффектом — результат сотрудничества Miu Miu и New Balance. Miu Miu полностью обновляет конструкцию, делая её ультралёгкой, и играет с контрастными по цвету и текстуре шнурками. Логотип дополняет дизайн культовым фирменным штрихом 🛒Связаться с менеджером: Telegram \ WhatsApp \ сайт #newbalance

Hashtags

KICKSADDICTION

@kicksaddiction · Post #5080 · 23.03.2025 г., 09:08

New Balance 9060 Кроссовки New Balance 9060 вдохновлены классическими моделями 2000-х годов. Многослойный верх из кожи, замши и текстиля сочетается с технологичной составляющей. Кроссовки дополнены акцентным логотипом New Balance на внешней стороне и вышитой буквой N по внутренней стороне пары. Все модели доступны к заказу в KICKSADDICTION 🫶🏼 🛒Связаться с менеджером: Telegram \ WhatsApp \ сайт #newbalance

Hashtags

YOODJEE

@yoodjee · Post #1840 · 25.09.2023 г., 11:53

zinoveva.irin выбрала коллаборацию с японским брендом nike and … и New Balance 530 в расцветке Brown Стоимость от 24 500₽ Для заказа и консультации: @theyoodjee🛍️ #newbalance

Hashtags

YOODJEE

@yoodjee · Post #1834 · 07.09.2023 г., 14:09

New Balance 9060 - имеют массивный логотип «N», ромбовидную подошву, разрез на заднике, брендинг на язычке и достаточно толстую мидсоль. Разработка силуэта началась в 2019 году, в 2022 году появились первые расцветки, а к текущему времени NB 9060 уже обросли армией поклонников🔥 Стоимость от 25 000₽ Для заказа: @theyoodjee🛍 #newbalance

Hashtags

YOODJEE

@yoodjee · Post #1825 · 30.08.2023 г., 10:14

Yanvex в New Balance 550 Salt and Pepper Стоимость от 19 500₽ Для заказа: @theyoodjee🛍 #newbalance

Hashtags

YOODJEE

@yoodjee · Post #1761 · 14.08.2023 г., 16:35

New Balance 550 демонстрирует простую палитру винтажных кроссовок, первоначально выпущенных в 1989 году. Выпуклый логотип «N» на боковой панели и изображение баскетбольного мяча на тканом язычке. Прочная резиновая подошва сохраняет эстетику возврата, а гибкие канавки обеспечивают плавность хода. Мы считаем, что данная модель отлично подойдет для долгих прогулок в прохладные дни🔥 Стоимость от 19 000₽ #newbalance

Hashtags

YOODJEE

@yoodjee · Post #1730 · 05.08.2023 г., 09:51

Куделина Мария В кроссовках New Balance 550 White Green Стоимость от 22 500₽ Для заказа и консультации: @theyoodjee🛍 #newbalance

Hashtags

YOODJEE

@yoodjee · Post #1723 · 31.07.2023 г., 10:51

TANYA TEYLA в кроссовках New Balance 9060 Rain Cloud Grey Стоимость от 24 000₽ Для заказа: @theyoodjee🛍 #newbalance

Hashtags

YOODJEE

@yoodjee · Post #1707 · 25.07.2023 г., 09:05

Gala Borzova в New Balance 550 White Grey Dark Grey Стоимость от 19 500₽ Для заказа и консультации: @theyoodjee🛍️ #newbalance

Hashtags

YOODJEE

@yoodjee · Post #1683 · 18.07.2023 г., 12:58

В 2009 году New Balance создал кроссовки 1906R. 1906 - год основания компании R- современный внешний вид и 1-ю букву фамилии основателя Уильяма Райли. Огромное влияние на популярность 1906R оказали коллаборации с модным магазинами и брендами: COMME des GARÇONS, Auralee, atmos, Aimé Leon Dore, thisisneverthatи и другие. Все модели доступны к заказу: @theyoodjee🛍 #newbalance

Hashtags

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