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

Пребарај: #21mart

当前筛选 #21mart清除筛选
ADU.UZ | Rasmiy kanal

@adu_uz · Post #59618 · 22.03.2026 г., 09:01

#Dayjest#21mart 🌺“Navro‘zni ulug‘lash – Insonni ulug‘lashdir!” 21-mart Navro‘z umumxalq bayrami munosabati bilan “Navro‘zni ulug‘lash – Insonni ulug‘lashdir!” bosh g‘oyasi asosida oliy ta’lim tashkilotlarida ma’naviy-ma’rifiy tadbir va tanlovlar o‘tkazilmoqda. ➖ Qoʻqon davlat universiteti; ➖ Namangan davlat universiteti; ➖ TDTU Termiz filiali; ➖ Andijon qishloq xoʻjaligi va agrotexnologiyalar instituti; ➖ Andijon davlat chet tillari instituti; ➖ Buxoro davlat universiteti; ➖ Jizzax politexnika instituti; ➖ Namangan davlat texnika universiteti; ➖ Nukus davlat pedagogika instituti; ➖ O‘zMU Jizzax filiali; ➖ Buxoro davlat texnika universiteti; ➖ Buxoro davlat pedagogika instituti; ➖ Osiyo xalqaro universiteti; ➖ Samarqand davlat pedagogika instituti; ➖ SamDU Urgut filiali; ➖ Farg‘ona davlat universiteti; ➖ TKTI Yangiyer filiali; ➖ Qarshi davlat universiteti; ➖ Samarqand davlat veterinariya meditsinasi, chorvachilik va biotexnologiyalar universiteti; ➖ Navoiy davlat universiteti; ➖ Andijon davlat universiteti; ➖ Andijon davlat pedagogika instituti; ➖ Urganch davlat universiteti; ➖ Alfraganus universiteti; ➖ Guliston davlat universiteti; ➖ Samarqand iqtisodiyot va servis instituti; ➖ Toshkent davlat yuridik universiteti; ➖ Guliston davlat pedagogika instituti; ➖ Toshkent davlat agrar universiteti; ➖ Jizzax davlat pedagogika universiteti; ➖ TDIU Samarqand filiali; ➖ O‘zDSMI Nukus filiali; ➖ Navoiy davlat konchilik va texnologiyalar universiteti; ➖ Millat umidi universiteti; ➖ Toshkent kimyo-texnologiya instituti; ➖ Botir Zokirov nomidagi Milliy estrada san’ati instituti; ➖ Samarqand davlat arxitektura-qurilish universiteti; ➖ Urganch davlat pedagogika instituti; ➖ Denov tadbirkorlik va pedagogika instituti; ➖ Shahrisabz davlat pedagogika instituti; ➖ Chirchiq davlat pedagogika universiteti; ➖ Farmatsevtika ta’lim va tadqiqot instituti; ➖ Farg’ona jamoat salomatligi tibbiyot instituti; ➖ Toshkent davlat texnika universiteti; ➖ Samarqand davlat tibbiyot universiteti ; ➖ O‘zbekiston davlat jahon tillari universiteti; ➖ Toshkent iqtisodiyot va pedagogika universiteti; ➖ Urganch davlat tibbiyot instituti; ➖ “Ipak yo‘li” turizm va madaniy meros xalqaro universiteti. Bizni kuzating Facebook | Instagram |YouTube | Telegram

🇺🇿Qadrli yurtdoshlar, yasharish va yangilanish bayrami - Navro‘zi olam muborak bo‘lsin! 🌱 Barchangizni diyorimizga o‘zgacha shukuh va tarovat ila kirib kelgan fasllar malikasi bahorning yangilanish va yasharish bayrami – Navro‘zi olam bilan muborakbod etamiz! 🌸Navro‘z barchamizga fayzu baraka, tinchlik va farovonlik keltirsin! Hurmat bilan, Biznes va tadbirkorlik oliy maktabi #GSBE#GraduateSchool#Navruz#21Mart#Holiday 🔝Web-site |🔝Facebook | 🔝Instagram | 🔝Youtube

CNC Electric Uzbekistan

@electromaxgroup · Post #981 · 21.03.2021 г., 04:03

Qadrli do'stlar, sizlarni chin qalbimizdan Navro'z bayrami bilan tabriklaymiz! Ushbu bahoriy kunda tuganmas baxt, xotirjamlik, ezgulik va farovonlik tilaymiz. Har bir oilada quvonch va farovonlik hukmron bo'lsin. CNC Uzbekistan kompaniyasi nomidan har biringizga ko'rsatilgan ishonch, e'tibor va samarali hamkorlik uchun minnatdorlik bildiramiz. Дорогие друзья, от всей души поздравляем Вас с праздником Навруз! В этот весенний день мы хотим пожелать Вам безграничного счастья, мира, добра и процветания. Пусть в каждой семье царит радость и благополучие. Компания CNC Uzbekistan благодарит каждого за оказанное доверие, проявленное внимание и плодотворное сотрудничество. Telegram|Instagram|Facebook|Youtube|Website|Email #21mart#navruz#cnc#cncelectric#cncuzbekistan#cnctashkent#elcomelectric#elcom