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

Пребарај: #ochiqtanlov

当前筛选 #ochiqtanlov清除筛选

#Vakansiya#OchiqTanlov 📣ARGOS da quyidagi vakant lavozimlar uchun ochiq mustaqil tanlov eʼlon qilindi: ➡️Shovot tuman kambag'allikni qisqartirish va bandlikka ko'maklashish bo'limi: Bo'lim boshligi; ➡️Bog‘ot tuman kambag'allikni qisqartirish va bandlikka ko'maklashish bo'limi: Bo'lim boshligi; ➡️Yangibozor tuman maktabgacha va maktab ta'limi bo‘limi: Maktablar faoliyatini muvofiqlashtirish shobasi bosh mutaxassisi; ➡️Gurlan tuman maktabgacha va maktab ta'limi bo‘limi: O'quvchilar bilimini baholash, tahlil qilish va pedagoglarni kasbiy rivojlantirishni muvofiqlashtirish shubasi bosh metodisti; ➡️Yangibozor tumani sanitariya-epidemiologik osoyishtalik va jamoat salomatligi bo‘limi: Bo`lim boshlig'i; ➡️Urganch tumani sanitariya-epidemiologik osoyishtalik va jamoat salomatligi bo‘limi: Bo`lim boshlig'i; ➡️ Bog‘ot tuman tibbiyot birlashmasi: Stomatolog shifokori (vrachi); Pediatr shifokori (vrachi); ➡️ Gurlantuman tibbiyot birlashmasi: Oilaviy shifokor; ➡️Urganch shahar tibbiyot birlashmasi: 4-son poliknika bo‘lim boshlig‘i; Provizor; Ultra tovush tekshiruvi shifokori (UTT); ➡️Qo'shko'pir tuman tibbiyot birlashmasi: Oilaviy shifokori (vrachi); ➡️Qo'shko'pir tuman veterinariya va chorvachilikni rivojlantirish bo`limi: Veterinariya faoliyatini muvofiqlashtirish va davlat nazorati bo'yicha mutaxassis; ➡️Xazorasp tumani oila va xotin-qizlar bo‘limi: "Yangi obod va Buyuk ajdodlar" mahallasi xotin-qizlar faoli; "Barkamol avlod va Aloqali ko‘l" mahallasi xotin-qizlar faoli; ➡️Urganch shahar oila va xotin-qizlar bo‘limi: "Umid, J.Manguberdi va Feruz" mahallasi xotin-qizlar faoli; ➡️Xorazm viloyati Kambag'allikni qisqartirish va bandlik bosh boshqarmasi: Davlat mehnat inspeksiyasi boshlig‘i - hududiy bosh davlat mehnat inspektori; ➡️Urganch shahar hokimligi: Maʼnaviy-maʼrifiy ishlar samaradorligini oshirish, davlat tili toʼgʼrisidagi qonun hujjatlariga rioya etilishini taʼminlash masalalari boʼyicha maslahatchisi; ➡️Yangibozor tumani hokimligi: Yuriskonsult. ⚠️Arizalar 21.07.2025-yil soat 23:59 gacha qabul qilinadi. ⭕️⭕️⭕️⭕️ ➡️Ushbu xabarni ish izlab yurgan yaqinlaringizga ulashing. 📑Vakansiyalarni o'tkazib yubormaslik uchun kanalimizga obuna bo'ling! 🇺🇿Xorazm viloyati Kambag'allikni qisqartirish va bandlik boshqarmasi Axborot xizmati Telegram |Instagram |Facebook |Web-sayt |Youtube |Vakansiya

📣📣📣📣📣#ARGOS#vakansiya#ochiqTanlov 🇺🇿Davlat fuqarolik xizmatchilari vakant lavozimlarining yagona ochiq portalida Xorazm viloyatidagi quyidagi vakant lavozimlarga ochiq mustaqil tanlov eʼlon qilindi: ➡️Gurlan tuman maktabgacha va maktab ta'limi bo‘limi: Davlat xususiy sherikchilik asosidagi va oilaviy nodavlat maktabgacha ta’lim tashkilotlari faoliyatini tashkil etish bo‘yicha bosh mutaxassis; ➡️Xazarasp tumani Suv yetkazib berish xizmati: Suvni tejaydigan va raqamli texnologiyalarni rivojlantirish bo‘yicha bosh mutaxassis; ➡️ Bog‘ot tuman tibbiyot birlashmasi: Nevrologiya bo‘limi mudiri; ➡️Urganch shahar tibbiyot birlashmasi: Rentgenolog shifokor; Shifokor immunolog; Infeksionist shifokor; 4-son poliknika bo‘limi boshlig‘i; ➡️Xiva shaharhokimligi: Bosh hisobchi; ➡️Xazorasp tumani oila va xotin-qizlar bo‘limi: "Ovshar" mahallasidagi xotin-qizlar faoli; ➡️Yoshlar ishlari agentligi Xonqa tumani boʻlimi: Bo‘lim boshlig‘i; ➡️Tuproqqal'a tuman maktabgacha va maktab ta'limi bo‘limi: Maktablar faoliyatini muvofqlashtirish sho’basi boshlig’i-boshliq o’rinbosari; ➡️ Xazorasp tuman maktabgacha va maktab ta'limi bo‘limi: Maktablar faoliyatini muvofiqlashtirish sho‘basi boshlig'i - boshliq o'rinbosiri; ➡️ Xorazm viloyati Ekologiya, atrof-muhitni muhofaza qilish va iqlim o‘zgarishi boshqarmasi: Matbuot kotibi; ➡️Urganch tuman soliq inspeksiyasi: Inspeksiya boshligi o‘rinbosari. ❕ Arizalar 26.07.2025-yil soat 23:59 gacha qabul qilinadi. ⭕️⭕️⭕️⭕️ ➡️Ushbu xabarni ish izlab yurgan yaqinlaringizga ulashing. 📑Vakansiyalarni o'tkazib yubormaslik uchun kanalimizga obuna bo'ling! 🇺🇿Xorazm viloyati Kambag'allikni qisqartirish va bandlik boshqarmasi Axborot xizmati Telegram |Instagram |Facebook |Web-sayt |Youtube |Vakansiya

#Argos#ochiqTanlov#vakansiya Davlat fuqarolik xizmatchilari vakant lavozimlarining yagona ochiq portalida Xorazm viloyatidagi quyidagi vakant lavozimlarga ochiq mustaqil tanlov eʼlon qilindi: ➡️Xiva shahar kambag'allikni qisqartirish va bandlikka ko'maklashish bo'limi: Og‘ir mahallalar bilan ishlash va oilalarni kambag‘allikdan chiqarish dasturlarini muvofiqlashtirish bosh mutaxassisi; ➡️Yangiariqtuman kambag'allikni qisqartirish va bandlikka ko'maklashish bo'limi: Ijara yer maydonlari va tomorqalardan samarali foydalanishni tashkil etish bo‘yicha bosh mutaxassisi; ➡️ Xiva tuman tibbiyot birlashmasi: Patronaj xamshira; ➡️ Gurlantuman tibbiyot birlashmasi: Vrach laborant; Provizor; ➡️Urganch shahar 2-son oilaviy poliklinikasi: Endokrinolog shifokor; ➡️Xorazm viloyati ruhiy asab kasalliklar dispanseri: Texnika xavfsizligi muxandisi; ➡️Tuproqqal‘a tuman “Suv yetkazib berish xizmati” davlat muassasasi: Bosh gidrometr; Suvni tejaydigan va raqamli texnologiyalarni rivojlantirish bo‘yicha bosh mutaxassis; Boshliq o‘rinbosari-Bosh gidrotexnik; ➡️Xiva tumani Suv yetkazib berish xizmati: Bosh buxgalter. ⚠️Arizalar 22.07.2025-yil soat 23:59 gacha qabul qilinadi. ⭕️⭕️⭕️⭕️ ➡️Ushbu xabarni ish izlab yurgan yaqinlaringizga ulashing. 📑Vakansiyalarni o'tkazib yubormaslik uchun kanalimizga obuna bo'ling! 🇺🇿Xorazm viloyati Kambag'allikni qisqartirish va bandlik boshqarmasi Axborot xizmati Telegram |Instagram |Facebook |Web-sayt |Youtube |Vakansiya