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

Резултати

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

Пребарај: #frilans

当前筛选 #frilans清除筛选
AyTi Markaz Yaypan

@ITCenter_Yaypan · Post #1486 · 15.03.2023 г., 04:59

#frilans Ziyo kitoblar do'koni uchun dizayn tayyorladik! 🌙 Insha'alloh 23-mart sanasidan Ramazon oyi boshlanishi kutilmoqda. Shu sababli buyurtma asosida @ziyouzyaypan uchun «Ramazon Taqvimi» ni tayyorladik. 🗒 Azizlarga saharlik, iftorlik vaqtlarini hamda duolarni eslatib turishda yordamchi bo'ladi degan umiddamiz. ☺️ Taqvimlarimiz sizgacha yetib borsa va foydasi tegsa, duolaringizda bizni ham eslab qo'yishni unutmang! 📞 Dizayn xizmatlari uchun: +998990009627 | @Ibrohimjon_65 @ITCenter_Yaypan

Hashtags

Suxrob Xurramov | Blog

@suxrobblog · Post #1121 · 14.09.2025 г., 12:51

Kwork'da profil ochib qoʻydim. Bir ikkita ishlardan yengillab olsam, boshida kichikroq buyurtmalar olishga harakat qilib koʻrishim mumkin. Masalan, boshida mobil dizaynlarga aloqador buyurtmalarga eʼtiborimni qaratishim mumkin. — Mana buyerda aytilgan dasturchi aka esa, bitta proektni kelishib qoʻyib, 4-5 oydan beri, mijozdan feature'lar qoʻshtirib ketayotgan ekan. Yaʼniki, oylik emas, bitta summaga (fixed) kelishilgan proektni qoʻshimchalar qoʻshish bilan ishlab borayotgan ekanlar. 🎚️ Shu uchun mijoz bilan kelishuvni puxta qilish kerak, iloji boricha dizayn boʻyicha buyurtmani MVP bosqichiga deb kelishish kerak yoki qoʻshiladigan feature'larni oldindan aniqlab olib, shundan chiqmay ishlash kerak. @suxrobblog » #kwork#frilans

Suxrob Xurramov | Blog

@suxrobblog · Post #1159 · 03.10.2025 г., 12:42

💻Kwork.ru bo‘yicha fikrlarimni bo'lishishda davom etaman... Hozirda bir mijoz bilan faol tarzda ishlayapman. Bundan tashqari, yaqinda yana bir mijozdan 5 ta loyiha chiqdi (har biri taxminan 30 000± rubl atrofida edi), lekin hozircha ularni rad etdim. Sababi, avval mavjud mijozlarimning ishini tugatib bermoqchiman. Ularga, hozirgi ishlarim tugashi bilan ularning loyihalarini olishim mumkinligini ham aytib qo‘yganman. Umuman olganda, Kwork platformasida ishlash menga deyarli qiyinchilik tug‘dirmayapti. Faqat bitta masala bor, rus tilini yaxshilab o‘rganishim kerakligini his qilyapman 😅. Ko‘p terminlarni bilmayman, ba’zan oddiy yozishmalarda ham qiynalib qolyapman. Shuning uchun rus tilini ham asta-sekin o‘rganib borishim kerak. (O‘zbek tilidan tashqari yana 3 ta til bo‘lyapti-a, karl! 😄) Mijozimning o‘zi ham samimiy va ochiqko‘ngil inson ekan. Suhbat davomida, komplementlar qilib turibdi. To‘g‘risi, ularning budjeti ish hajmiga nisbatan ancha past narxda, lekin men baribir loyihani bajarib beraman deb aytganman. Jarayonlar cho‘zilib ketsa yoki menga minusga ketsa ham, so'zimda turib, ishni oxirigacha yetkazish niyatidaman. Shu o‘rinda aytishim kerakki, mijozim ham suhbatda: “Ishni tashlab ketasiz deb o‘ylagandim” degandek gapirdi. Endi esa menga ishonch bildirayotgani sezilib, komplement qilib turibdi. Ishqilib, buncha maqtovdan keyin qo‘lim ishga bormay qolmasa bo‘ldi edi 😄 Xulosa qiladigan bo'lsak: Kishi aytgan gapi va olgan mas’uliyati uchun javob bera olishi kerak. Agar bunga tayyor bo‘lmasa, “bu ishga aqlim yetmaydi” deb boshqa yo'lni tanlagani afzal. Ishning sifati ham, obro‘si ham shundan boshlanadi. @suxrobblog » #kwork#frilans#mijoz

AyTi Markaz Yaypan

@ITCenter_Yaypan · Post #757 · 14.05.2022 г., 05:36

#IT_Center#frilans Bismillah deb frilanserlik faoliyatimizni ham boshlayapmiz 🤝 Eng avvalo keysimizni tumanimizdan boshlashga qaror qildik. Tuman Istirohat bog'ining SMM xizmatini hech qanday moddiy manfaatlarsiz yuritishni boshladik. ☺️ Hozircha logo brending hamda kanal tayyor bo'ldi. insha'Allah rejalar katta. SMM'dan xabari bor, media sohasida iqtidorga ega yoshlarni jamoamizga taklif etamiz. ✋ Bizga kerak: – SMM'chi; – Grafik dizayner; – Video-montaj ustasi; – Mobilograf va yana boshqalar Havaskor yoshlarni ham qabul qilamiz. Bilganlarimizni o'rgatib, tajriba almashamiz. 🟢IT Center'da kutamiz *Loyiha hech qanday moddiy manfaatlarni ko'zda tutmaydi! @yaypanpark🎡#yaypanpark @ITCenter_Yaypan – tumanimiz rivoji uchun