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

Резултати

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

Пребарај: #healing

当前筛选 #healing清除筛选
✨Jast mi🌷🇫🇷

@jastm1 · Post #4909 · 29.12.2024 г., 16:00

⭐️#Healing series Day IDK (sorry I forgot about these) 🍵Muammolarga bo'lgan fikringizni o'zgartiring! Hayotingizda uchraydigan har qanday qiyinchilik yoki muammo haqida boshqacha o‘ylang. Computer Scientist sifatida men har qanday narsani hal qilib bo‘lishiga ishonishga MAJBURMAN. Agar hal qilib bo‘lmasa, bu mening muammom emas va unga e'tibor bermasligim kerak. Qo‘rqmang, yig‘lamang yoki stressga tushmang. Tinchlaning va bu muammoni hal qilish uchun nima qilishingiz mumkinligini o‘ylab ko‘ring. Muammoni strategik va mantiqiy yondashuv bilan hal qiling. Kerak bo‘lganda yordam so‘rang. Esda tuting, Queen never cry. Agar muammo yechimi yo‘q bo‘lsa va siz hech narsa qila olmasangiz, vaziyatni o‘zgartira olmasligingizni tushunib, tinchlaning. Vaziyatga moslashishga harakat qiling. Axir qancha yig‘lamang, ob-havoni o‘zgartira olmaysiz, to‘g‘rimi? ~ 🎀~ ↬@jastm1🌊

Hashtags

✨Jast mi🌷🇫🇷

@jastm1 · Post #4904 · 25.12.2024 г., 19:20

⭐️#Healing series Day 2 🍵Nimani "iste'mol" qilayotganingizga e'tiborli bo'ling! "Men nima yesam o'shaman" degan iboraning asl ma'nosi haqida o'ylab ko'rganmisiz? Bu aslida juda oddiy ibora. Sog'lom tanani saqlash uchun biz odatda nima iste'mol qilayotganimiz va qancha miqdorda iste'mol qilayotganimizga e'tibor beramiz. Xuddi shu mantiq miyangizga ham taalluqli. Har kuni miyangizni nima bilan oziqlantirayotganingizga ham shunchalik ongli ravishda yondashishingiz kerak 😐. O'ylab ko'ring: ma'nosiz qisqa videolar, TikTok qo'shiqlari va fanfiction ga o'xshab yozilgan kitoblar—bular miyangizni oziqlantiryaptimi? Yengil va oson hazm qilinadigan kontentni vaqti-vaqti bilan iste'mol qilish yaxshi bo'lsa-da, uni yuqori sifatli, intellektual jihatdan qiziqarli materiallar bilan muvozanatlash muhimdir. Qanday qilib nosog'lom oziq-ovqat tanangizga zarar yetkazishi mumkin bo'lsa, ma'nosiz tarkib ham aqliy qobiliyatlaringizni susaytirishi mumkin 💃. Keyingi safar film tomosha qilishni xohlaganingizda, murakkab va aqlli syujetli filmni tanlang. Musiqa tanlashda esa mazmunli qo'shiqlarga e'tibor bering. Sizning tanlovlaringiz sizning aqliy dietangizni shakllantiradi. 21-asr—ma'lumot iste'mol qilishdan qochib bo'lmaydigan davrda qabul qilayotgan ma'lumotlarimizni nazoratga olish juda muhim. Shuning uchun, aqliy dietangizga g'amxo'rlik qiling. O'qiyotgan kitoblaringiz, tomosha qilayotgan shoularingiz va tinglayotgan musiqangiz haqida ongli qarorlar qabul qiling. Miyangizni qiyinchiliklarga duchor qiladigan, ilhomlantiradigan va boyitadigan kontent bilan oziqlantiring. ~ 🎀~ ↬@jastm1🌊

Hashtags

✨Jast mi🌷🇫🇷

@jastm1 · Post #4895 · 24.12.2024 г., 16:12

⭐️#Healing series Day 1 ⭐️Sport bilan shug‘ullanishni boshlang! Bizni yoshlikdan sportning ahamiyati va u umrimizni uzaytirishi haqida o‘rgatib kelishadi. Sportning sog‘ligimizga bo‘lgan foydasi haqida gapirish shart ham emasdek tuyuladi — buni hammamiz juda yaxshi bilamiz. Ammo nega, buni yaxshi bilishimizga qaramay, jamiyatimizning aksariyati sport bilan shug‘ullanmaydi? Sababi o‘rnak bo‘ladigan insonlarning yo‘qligidadir. Ota-onangiz muntazam ravishda sport bilan shug‘ullanadimi? Ko‘pchilik bu savolga “ha” deb javob bera olmasa keark😱. Men bu muammoni yosh avlodda takrorlanishini xohlamayman. Shuning uchun sizlarni bu odatga qarshi kurashishga undayman. Sog‘lom turmush tarzini o‘zimizdan boshlashimiz kerak. Agar birinchi navbatda o‘z salomatligimizga befarq bo‘lmasak, atrofimizdagilar ham bundan ilhomlanib, yaxshi tomonga o‘zgaradi. ~ 🎀~ ↬@jastm1🌊

Hashtags

Google Facts™ [ ️@googlefactss🌎]

@googlefactss · Post #40568 · 22.01.2026 г., 02:01

Cybergrief happens when someone feels sad because an online friend passes away or stops talking. This feeling can be just as deep as losing a friend in real life. Since 2020, more people have faced this because they connect online more. It's normal to feel upset or alone. Finding help and support makes it easier. 💻💔 [Read more1] [Read more2] @googlefactss #Cybergrief#OnlineLoss#MentalHealth#Support#Healing

Google Facts™ [ ️@googlefactss🌎]

@googlefactss · Post #40476 · 04.01.2026 г., 15:03

Super glue aka Cyanoacrylate glue is used in medicine to close wounds without stitches. It was used in the Vietnam War to stop bleeding quickly. Different types like Dermabond help skin heal better and are safer than regular glue. Rock climbers and musicians also use it to protect their fingertips. Large amounts or fumes can cause skin burns, so it must be used carefully. 🩹👌 [Read more] @googlefactss #Cyanoacrylate#WoundCare#MedicalGlue#Healing#sticky

12
ПретходнаСтраница 1 од 2Следна