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

Резултати

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

Пребарај: #terdu

当前筛选 #terdu清除筛选
Milliy meros

@termizmuzey · Post #190 · 12.11.2021 г., 14:05

#TerDU | #yoshlar_haftaligi Muzeylar oʻtmish bilan bugunni bogʻlovchi maʼnaviyat koʻprigi hisoblanadi. Termiz davlat universitetida o’tkazilayotgan “Yoshlar haftaligi” doirasida Yuridik fakulteti talabalari “Tarix va madaniyat muzeyiga” sayohat qilishdi. Surxondaryo viloyati tarixi va madaniyati davlat muzeyi binosi Termiz shahrining koʻrkiga koʻrk qoʻshish bilan birga aholi, shu jumladan, yoshlarimizni tariximizga, milliy urf-odat va anʼanalarimizga hurmat ruhida tarbiyalashga xizmat qiladi. “Tabiat”, “Arxeologiya va tarix”, “Tasviriy sanʼat”, “Mustaqillik davri” hamda “Etnografiya” singari 5 ta boʻlimdan iborat, Uning fondida 16 ta yoʻnalishda 61 ming 325 ta eksponat mavjud boʻlib, shundan, 3150 ta eksponat noyob ashyo va kolleksiyalar sirasiga kiradi. Bu yerda saqlanayotgan nodir eksponatlardan xalqimizning ming yillik anʼanalari, qadriyatlarini oʻrganish mumkin. Talabalar muzeydan katta taassurotlar bilan qaytishdi. 〰️〰️〰️〰️〰️〰️〰️〰️ 🌐Termiz davlat universiteti rasmiy kanali

TerDU Yuridik fakulteti

@terdu_yuridik · Post #3136 · 01.06.2025 г., 20:48

#TerDU#tabrik 🎉Termiz davlat universiteti Yuridik fakulteti Jinoyat huquqi va fuqarolik protsessi kafedrasi dotsenti Mallayev Normamat Ramazonovichning tavallud topgan kuni bilan tabriklaymiz! Hurmatli Normamat Ramazonovich! Sizga sog'lik-salomatlik, oilaviy farovonlik, shogirtlar ardog'ida bo'lishdek yuksak sharaf va doimiy muvaffaqiyatlar tilaymiz. Har doim shijoatli va kuch-g‘ayrat bilan to‘la bo‘ling! Hurmat bilan, Yuridik fakulteti jamoasi! 🌐Bizni ijtimoiy tarmoqlar orqali kuzating! 📱Telegram | 📱Instagram | 📱Facebook | 📱You tube

TerDU Yuridik fakulteti

@terdu_yuridik · Post #3134 · 31.05.2025 г., 19:59

#TerDU#tabrik 🎉Termiz davlat universiteti Yuridik fakulteti Jinoyat huquqi va fuqarolik protsessi kafedrasi o'qituvchisi Nazarov Elbek Shermaxmatovichning tavallud topgan kuni bilan tabriklaymiz! Hurmatli Elbek Shermaxmatovich! Yangi yoshingizda sog‘lik, baxt, oilaviy farovonlik, ishlaringizda yutuqlar va doimiy muvaffaqiyatlar tilaymiz. Har doim shijoatli va kuch-g‘ayrat bilan to‘la bo‘ling! Ilmiy va kasbiy faoliyatingizga zafarlar tilaymiz. Hurmat bilan, Yuridik fakulteti jamoasi! 🌐Bizni ijtimoiy tarmoqlar orqali kuzating! 📱Telegram | 📱Instagram | 📱Facebook | 📱You tube

TerDU Yuridik fakulteti

@terdu_yuridik · Post #3081 · 28.05.2025 г., 10:49

#TerDU#tabrik Tug‘ilgan kuningiz bilan! Termiz davlat universiteti Yuridik fakulteti Jinoyat huquqi va fuqarolik protsessi kafedrasi o'qituvchisi Behruz Tursunovning tavallud topgan kuni bilan tabriklaymiz! Hurmatli Behruz Normurodovich! Sizga muvaffaqiyatli va samarali ish, kuch va sog'liq, baxt va farovonlik tilaymiz! Oilangiz, eng aziz va eng yaqin insonlaringiz baxtiga omon bo‘ling. Faoliyatingizga ulkan zafarlar tilaymiz. Hurmat bilan, Yuridik fakulteti jamoasi! 🌐Bizni ijtimoiy tarmoqlar orqali kuzating! 📱Telegram | 📱Instagram | 📱Facebook | 📱You tube

TerDU Yuridik fakulteti

@terdu_yuridik · Post #3291 · 07.07.2025 г., 11:20

#bitiruvchi#TerDU 🎓TerDUda diplom topshirish haftaligiga start berildi 🟢Noan’anaviy tarzda tashkil etilgan diplom topshirish marosimida TerDning Yuridik fakulteti hamda kimyo fakulteti talabalari ishtirok etdi 🟢Samimiy muloqotlarda farzand tarbiyasi yo‘lida ibrat ko‘rsatgan ota-onalarga ehtirom ko‘rsatildi, esdalik uchun suratlarga tushildi. Hatto yuridik fakultetini tamomlayotgan andijonlik bitiruvchining o‘n besh nafar qarindoshlari bilan alohida suratga tushildi. 🟢Ayniqsa, talabalarga Erkin A’zamning Gonoluluga elchi kitobining sovg‘a qilinishi ularning kitob javonini yana bir shoh asar bilan boyitish barobarida 2054-yil nishonlanadigan universitetimizning 100 yilligi tadbirlariga taklifnoma ekanligi ularga universitet professor-o‘qituvchilarning mehrini, shogirdining kelajagiga bo‘lgan daxldorligini namoyon etdi. Bizni kuzating Telegram| Instagram | Facebook | You tube | Sayt