Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для 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
4K vs 8K
4K — 4000 piksel gorizontal o'lchamlari bilan ultra yuqori aniqlikdagi (Ultra HD) tasvir formati. 8K uchun gorizontal piksellar soni 8000 pikselni tashkil qiladi.
Izoh: Piksellar - televizor tasvirini tashkil etuvchi nuqtalardir. K - 1000 ga yaqin degan ma'noni anglatadi. Qanchalik ko'p piksel bo'lsa, tasvir shunchalik aniqroq bo'ladi.
👉Bizning barcha loyihalar | #atama
40 ta xorijiy atamaning o‘zbekcha muqobili tasdiqlanibdi
#atama
Xushnudbek akani kanalida xabar berilishicha "Vazirlar Mahkamasi huzuridagi Atamalar komissiyasi majlisining 2025-yil 30-iyuldagi 62-son bayoniga binoan oʻzbek tili qoida va meʼyorlari asosida shakllantirilgan hamda rasmiy muomalaga kiritiladigan yangi soʻz va atamalar roʻyxati tasdiqlanibdi".
📄Shu ro'yxatdan o'zimizni sohaga tegishlilarni ajratib chiqdim:
Конфиденциал - maxfiy
Коворкинг - ish markazi
Линк - havola
Мастер класс - mahorat darsi
Мотивация - ruhlantirish, rag'bat
Навигатор - yo'llagich
Парол - o'ron
Портфолио - yig'majild
Смарт - aqlli
Челленж - chorlov
IT парк - AT parki
IT технологиялари - Axborot texnologiyalari (AT)
😎 Bularni ichida meni juda hayron qoldiradigan bir nechtalari bor ekan, ular ishtirokida gap tuzishga harakat qilib ko'rdim (ko'ramiz ularni topa olasizmi :)
Seni "AT park tomonidan o'tkazilayotgan chorlovda ishtirok etayapti" - deb eshitdim. Mana shu loyiha orqali tayyorlagan aqlli ishlaring jamlagan yig'majildga kiraman desam sen bergan o'ronni noto'g'ri deyapti. Shunga yig'majildingga kirish bo'yicha mahorat darsingni havolasini so'rab ruhlantirishsiz xabar yozayotgandim 😔. O'ylaymanki meni to'g'ri tushunding )
@kompyuter_akademiyasi
VR, AR va MR nima haqida gaplashamiz.
1️⃣ VR (Virtual Haqiqat), VR pleyerlari ko'rgan va his qiladigan haqiqiy uch o'lchovli dunyo, aslida barchasi virtual va kompyuterlar tomonidan yaratilgan bo'ladi.
2️⃣ AR (kengaytirilgan haqiqat), AR dunyosi qisman haqiqiy va qisman virtualdir. Boshqacha qilib aytganda, haqiqatdan ham dunyoning raqamli axborot tashuvchisi.
3️⃣ MR (Mixed Reality) - bu foydalanuvchining realizmini kuchaytirish uchun VR va ARning yanada rivojlangan versiyasi. Quyidagicha tasavvur qilish mumkin: MR = VR + AR
▶️Birinchi raqamli windows blog | @ITMastersUz | #atama
VR, AR va MR nima haqida gaplashamiz.
1️⃣ VR (Virtual Haqiqat), VR pleyerlari ko'rgan va his qiladigan haqiqiy uch o'lchovli dunyo, aslida barchasi virtual va kompyuterlar tomonidan yaratilgan bo'ladi.
2️⃣ AR (kengaytirilgan haqiqat), AR dunyosi qisman haqiqiy va qisman virtualdir. Boshqacha qilib aytganda, haqiqatdan ham dunyoning raqamli axborot tashuvchisi.
3️⃣ MR (Mixed Reality) - bu foydalanuvchining realizmini kuchaytirish uchun VR va ARning yanada rivojlangan versiyasi. Quyidagicha tasavvur qilish mumkin: MR = VR + AR
▶️Birinchi raqamli windows blog | @ITMastersUz | #atama
Touchpad nima?
#atama
ℹ️Touchpad - asosan noutbuk va netbuklarda sichqoncha vazifasini bajarish uchun ishlab chiqilgan joyi.
✅ U sensorli oyna va 2 tugmadan iborat. Sensorli oyna sichqonachani harakatlantirishini eslatsa, chap va o'ng tugmalari sichqonchadagi tugmalarga mos ravishda vazifani bajaradi.
😎V.M.: Shaxsan oʻzim yengil ishlar sababli noutbukdan foydalansam touchpadni ishlataman, qolgan paytlar 🐁 qulay.
🤨Siz touchpadni ishlatasizmi?
💻 Kompyuterni birga o'rganamiz ⤵️
💬Telegram I📺YouTube I📱Insta I📹TikTok
VR, AR va MR nima haqida gaplashamiz.
1️⃣ VR (Virtual Haqiqat), VR pleyerlari ko'rgan va his qiladigan haqiqiy uch o'lchovli dunyo, aslida barchasi virtual va kompyuterlar tomonidan yaratilgan bo'ladi.
2️⃣ AR (kengaytirilgan haqiqat), AR dunyosi qisman haqiqiy va qisman virtualdir. Boshqacha qilib aytganda, haqiqatdan ham dunyoning raqamli axborot tashuvchisi.
3️⃣ MR (Mixed Reality) - bu foydalanuvchining realizmini kuchaytirish uchun VR va ARning yanada rivojlangan versiyasi. Quyidagicha tasavvur qilish mumkin: MR = VR + AR
@BigMasterUz_bot – universal ustoz!
👉🏼Birinchi raqamli windows blog | @ITMastersUz | #atama
WPAD protokolini qanday va nima uchun o'chirish mumkin?
ℹ️Web Proksi-ni avtomatik aniqlash protokoli (WPAD) avtomatik proksi-serverni sozlash qoidalari to'plamidir. PAC konfiguratsiya faylining URL manzilini aniqlash va keyin mijozga proksi-serverlar ro'yxatini uzatuvchi FindProxyForURL funksiyasini chaqirish uchun brauzerlar tomonidan foydalaniladi.
📌WPAD zaifligi brauzer so'rovlarini ushlash va boshqariladigan proksi-serverlar orqali soxta PAC fayliga yoki soxta saytlarga yo'naltirishga imkon beradi. To'g'ri, bunday ushlash faqat ochiq Wi-Fi tarmog'ida mumkin, shuning uchun WPADni o'chirib qo'yish birinchi navbatda umumiy tarmoqlardan foydalanganda mantiqan to'g'ri keladi.
▶️WIN +R tugmalarini bosing va ncpa.cpl. Adapteringizning xususiyatlarini oching. IP-versiya 4 (TCP/IPv4) ni belgilang va Xususiyatlar tugmasini bosing. Keyin Advanced-ni bosing.
WINS yorlig'ini bosing va TCP/IP orqali NetBIOSni o'chirish radio tugmasini tekshiring.
👉🏼Birinchi raqamli Windows Blog | #atama / #foydali
Rasmlar jamlanmasi tayyorlash
#manba / #atama
ℹ️Collage (Коллаж) - bir nechta rasmlarni o'zida jamlagan rasm. Bunday turdagi media mahsulotidan asosan bir nechta rasmlarni bitta rasm holatiga keltirishdan foydalaniladi (yuqoridagi rasm). Collage'ni telefon, kompyuter dasturlari yordamida va hattoki Word, PowerPoint dasturlari bilan ham tayyorlash mumkin.
😎Lekin men uchun onlayn saytlar yordamida tayyorlash qulay va tezkor, shunday yaxshi saytlarni quyida keltiramiz:
• https://www.photocollage.com/
• https://pixlr.com/photo-collage/
• https://www.befunky.com/create/collage/
• https://www.photojoiner.com/editor/collage-editor
• https://www.fotor.com/features/collage
• https://www.fotor.com/design/project/b574b43a-279d-472e-a2a3-1c4c086bff4e/collage
💻 Kompyuterni birga o'rganamiz ⤵️
💬Telegram I📺YouTube I📱Insta I📹TikTok