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

Резултати

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

Пребарај: #muammo

当前筛选 #muammo清除筛选
KOMPYUTER AKADEMIYASI

@Kompyuter_Akademiyasi · Post #7244 · 14.09.2025 г., 14:15

📶 "Подключено, без доступа к интернету" — nega shunday bo‘lishi mumkin? #muammo / #internet ⚠️Agar sizning qurilmangiz Wi-Fi tarmog‘iga ulangan, lekin internetga kira olmasa, sabablar quyidagilar bo‘lishi mumkin: • Provayder tomonda muammo – Kabel uzilgan, texnik xizmat ishlari ketmoqda yoki siz to‘lovni o‘z vaqtida bajarmagansiz. • Limitlar yoki toʻlovlarda cheklovlar – Trafik limiti tugagan, provayder sizning sessiyangizni bloklagan bo‘lishi mumkin. • Routerda yoki yo‘riqchida texnik nosozliklar – Qurilma ishlamay qolyapti, kabel noto‘g‘ri ulangan, WAN-portda muammo. • Noto‘g‘ri tarmoq sozlamalari – IP yoki DNS avtomatik sozlanmagan, DHCP xizmati ishlamayapti. • Qurilmada yoki routerdagi nosozliklar – Wifi-drayver eskirgan, routerdagi kanallar to‘lib ketgan, signal zaif. ✅ Yechimlar: • Router va qurilmani qayta yoqish🔄 – Ko‘pincha oddiy restart muammoni hal qiladi. • Kabel va WAN portini tekshirish🔌 – Kabel uzilmaganmi, bo‘shab qolmaganmi? • Tarmoq sozlamalari⚙️ – IP va DNS avtomatik olish rejimiga qo‘yilganmi? • Boshqa qurilmada tekshirib ko‘rish📱💻 – Agar faqat bitta qurilmada ishlamasa, muammo shu qurilmaning sozlamalarida. • Provayder holati📞 – To‘lovni o‘z vaqtida qilganmisiz, texnik ishlar bormi? ©️Manba va muallif @kompyuter_akademiyasi

IT Masters

@ITmastersuz · Post #12425 · 19.09.2025 г., 15:20

📶 "Подключено, без доступа к интернету" — nega shunday bo‘lishi mumkin? #muammo / #internet ⚠️Agar sizning qurilmangiz Wi-Fi tarmog‘iga ulangan, lekin internetga kira olmasa, sabablar quyidagilar bo‘lishi mumkin: • Provayder tomonda muammo – Kabel uzilgan, texnik xizmat ishlari ketmoqda yoki siz to‘lovni o‘z vaqtida bajarmagansiz. • Limitlar yoki toʻlovlarda cheklovlar – Trafik limiti tugagan, provayder sizning sessiyangizni bloklagan bo‘lishi mumkin. • Routerda yoki yo‘riqchida texnik nosozliklar – Qurilma ishlamay qolyapti, kabel noto‘g‘ri ulangan, WAN-portda muammo. • Noto‘g‘ri tarmoq sozlamalari – IP yoki DNS avtomatik sozlanmagan, DHCP xizmati ishlamayapti. • Qurilmada yoki routerdagi nosozliklar – Wifi-drayver eskirgan, routerdagi kanallar to‘lib ketgan, signal zaif. ✅ Yechimlar: • Router va qurilmani qayta yoqish🔄 – Ko‘pincha oddiy restart muammoni hal qiladi. • Kabel va WAN portini tekshirish🔌 – Kabel uzilmaganmi, bo‘shab qolmaganmi? • Tarmoq sozlamalari⚙️ – IP va DNS avtomatik olish rejimiga qo‘yilganmi? • Boshqa qurilmada tekshirib ko‘rish📱💻 – Agar faqat bitta qurilmada ishlamasa, muammo shu qurilmaning sozlamalarida. • Provayder holati📞 – To‘lovni o‘z vaqtida qilganmisiz, texnik ishlar bormi? ©️Manba va muallif @kompyuter_akademiyasi

Suxrob Xurramov | Blog

@suxrobblog · Post #513 · 02.04.2025 г., 12:04

UX dizayn ortidagi haqiqat... UX dizayn – bu faqat chiroyli ko‘rinish emas, balki foydalanuvchi ehtiyojlariga moslab ishlab chiqilgan tizimli yondashuv. Har bir tugma, sahifa oqimi, joylashuv — bular ortida logika, tahlil va tajriba yotadi. Yaxshi UX dizayn bo‘lsa: 1. Platformaning struktura va navigatsiyasi aniq bo‘ladi, 2. Foydalanuvchi chalkashmaydi, 3. Dasturchi aniq yo‘l-yo‘riq bilan ishlaydi, 4. Ishlab chiqish jarayoni tezlashadi, xatolar kamayadi, 5. Va nihoyat, mahsulot muvaffaqiyatli chiqadi. Shuning uchun UX dizayn — sarmoya hisoblanadi. Va bu xizmat arzon bo‘lishi kutilmasligi lozim. Chunki u platformaning asosiy poydevorini tashkil qiladi. UX bo‘lmasa nima boʻlardi: — Foydalanuvchi chalkashadi: sayt tushunarsiz bo‘ladi; — Dasturchi yo‘nalishsiz ishlaydi: strukturani tuzishga qiynaladi va yana ham koʻproq toʻlov soʻraydi. — Koʻproq vaqt sarflanadi: Kutilgan natijaga erishish uzoq vaqt talab qilishni boshlaydi. Qisqasi: UX yo‘q joyda, muammo tug‘iladi. Startup va bizneslar UXʼsiz zararga tushishganliklari haqida kelgusi postlarda yozaman. @suxrobblog #ux#mavzu#muammo

Suxrob Xurramov | Blog

@suxrobblog · Post #435 · 13.02.2025 г., 15:44

Five Why (Besh nima uchun) texnikasi Bu muammoning asl sababini aniqlash uchun ishlatiladigan tahlil usuli. Bu metodika Sakichi Toyoda tomonidan ishlab chiqilgan va Toyota ishlab chiqarish tizimida keng qo‘llanilgan. Five Why qanday ishlaydi? — Ushbu usul muammoni chuqur tahlil qilish uchun "Nima uchun?" savolini besh marta berish orqali asosiy sababni topishga asoslanadi. Har bir javob keyingi "Nima uchun?" savoliga yo‘l ochadi. Misol uchun muammo:Mijozlar veb-saytdan mahsulot sotib olmayapti. 1. Nima uchun? – Chunki ular to‘lov jarayonini yakunlamayapti. 2. Nima uchun? – Chunki to‘lov formasini to‘ldirish juda uzoq davom etmoqda. 3. Nima uchun? – Chunki forma juda ko‘p maydonlarni talab qiladi. 4. Nima uchun? – Chunki biz mijozlardan keraksiz ma’lumotlarni ham so‘rayapmiz. 5. Nima uchun? – Chunki biz foydalanuvchilar tajribasini optimallashtirish ustida ishlamaganmiz. Natijada asosiy muammo kelib chiqdi – foydalanuvchi tajribasi yaxshi optimallashtirilmagan, shuning uchun to‘lov jarayoni murakkab bo‘lib qolgan. Endi yechim sifatida to‘lov shaklini soddalashtirish tavsiya etiladi. Bu metod har xil sohalarda – biznes, dizayn, muhandislik va menejment kabi sohalarda qo‘llaniladi. @suxrobblog #fivewhy#ux#muammo

Suxrob Xurramov | Blog

@suxrobblog · Post #1176 · 18.10.2025 г., 15:57

Murakkab hayotni yanada murakkablashtirmang. Yechimlarda maksimal minimallashtirishga harakat qiling. "Bu element nega kerak, shuni qo'ymasa nima bo'ladi..." degan savollarni o'zingiz va mijoz (kompaniya)ga bering. Userni o'zini muammolari ko'p sizni va mijozingizni xohishini deb, yanada murakkablik ichiga tushib qolmasin... @suxrobblog » #muammo#murakkab#yechim