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

Резултати

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

Пребарај: #superdispatch

当前筛选 #superdispatch清除筛选
Far·hod·jon

@farhodjon · Post #484 · 29.10.2021 г., 08:39

Super Dispatch tajribali mutaxassislar qidiruvida Komandamizga turli sohalardagi professionallarni taklif qilamiz. Hozirda quyidagi lavozimlar ochiq: - Engineering Manager (Germaniyadan ham odam izlayapmiz) - Manual QA Engineer - Senior/Middle Python Engineer - Senior/Middle Frontend Engineer Rezyume bu yerga yuboriladi: https://superdispatch.breezy.hr/?&department=Engineering#positions Aytgandek, agar biror professionalni taklif qilsangiz va u odam biz bilan 3 oydan keyin ham qolsa, biz sizga $500 beramiz. Odamlarni taklif qilish uchun email ([email protected]) yoki Telegram (@farhodjon) aloqaga chiqish mumkin. E’lonni tarqatishga yordam berganlardan juda minnatdor bo’laman. #superdispatch

Far·hod·jon

@farhodjon · Post #448 · 06.02.2021 г., 07:46

Super Dispatch komandasi kengayyapti Salom, do’stlar! Uzoq vaqt jimlikda qolib ketgan kanalga yaxshi yangilik qo’yishdan boshlayman. Super Dispatch kompaniyasida yangi ish o’rinlari ochildi va biz komandani kengaytiryapmiz. Quyidagi mutaxassisliklardagi professionallarni izlayapmiz hozir (Toshkent vaqti ±3 soat): - Associate Product Designer - Data Scientist - Engineering Manager - Frontend Tech Lead - Manual QA Engineer - Senior Backend (Python) Engineer Bizning talablarimiz va qo’shimcha detallari bilan tanishish, nomzod sifatida rezyume qoldirish maxsus saytimizda: https://superdispatch.breezy.hr/?&location=Tashkent%2C%20UZ#positions Aytgandek, agar biror professionalni taklif qilsangiz va u odam biz bilan 3 oydan keyin ham qolsa, biz sizga kamida $500 beramiz. Shunchaki tarqatadiganlarga katta minnatdorligim. #superdispatch

Far·hod·jon

@farhodjon · Post #786 · 30.12.2025 г., 15:12

📣 Hiring alert - Senior Data Scientist Yana bir vakansiya. Super Dispatch o’zi ishlab chiqqan Machine Learning modellarini rivojlantirish va yangi modellar qurish uchun Senior Data Scientist izlayapti. Asosiy vazifa: AQShdagi avto transport sohasi uchun kuchli modellar chiqarib, mijozlarga eng yaxshi tajribani yetkazish. Analitik fikrlash, rosa ko’p tajriba qilish sifatlari juda muhim. Nomzodlar bu yerda qabul qilinyapti: https://superdispatch.breezy.hr/p/46dc9ae30188-senior-data-scientist @farhodjon#superdispatch#hiring

Far·hod·jon

@farhodjon · Post #785 · 30.12.2025 г., 15:07

📣 Hiring alert - Senior QA Automation Engineer Super Dispatch QA avtomatizatsiyasi bilan shug’ullanadigan tajribali injener izlayapti. Bu injener Platform jamoasining bir qismi sifatida kompaniyaning QA jarayonlarini avtomatlashtirish uchun qurilgan (va quriladigan) platformaning asosi ustida ishlaydi va boshqa QA injenerlar yangi yo’nalishni o’zlashtirishda yordam beradi. Nomzodlar bu yerda qabul qilinyapti: https://superdispatch.breezy.hr/p/40e877318444-senior-qa-automation-engineer @farhodjon#superdispatch#hiring

Far·hod·jon

@farhodjon · Post #781 · 07.12.2025 г., 18:46

📣 Hiring alert - Senior QA Engineer II Super Dispatch juda tajribali, analitik fikrlaydigan, ingliz tilini juda yaxshi biladigan QA Engineer izlayapti. Bu injener sun’iy intellekt asosida ishlaydigan mahsulotlarning sifatini nazorat qilish, foydalanuvchilarga eng yaxshi tajribani yetkazish bilan shug’ullanadi. Nomzodlar bu yerda qabul qilinyapti: https://superdispatch.breezy.hr/p/3fddc0fba578-senior-qa-engineer-ii * * * * * Senior QA Engineer II - senior injenerning keyingi darajasi. Dasturchilardan kutiladigan taxminiy talablar bu injenerga ham qo’yiladi. Nisbatan kengroq mas’uliyatni oladi, to’liq avtonom, ishni avtomatlashtirishning yangi usullarini topadi, boshqa jamoalar va odamlar bilan yaxshi kommunikatsiya/munosabat quradi. @farhodjon#superdispatch#hiring

Far·hod·jon

@farhodjon · Post #778 · 03.10.2025 г., 23:02

📣 Hiring alert (October 2025 Edition) Hozir hamma ham paxta terish bilan band emas, shuning uchun, kuzgi vakansiyalarga nima yetsin? - Backend Engineer II (Python) - Director / VP of Engineering - Senior Product Designer Odamlarning hayotini va ishini o’zgartirish, professional o’sish, yaxshi komanda bilan ishlash imkoniyati. Tanishlarga yuborganlarga mendan (va Nodirxondan) cheksiz minnatdorlik! @farhodjon#superdispatch#hiring

Far·hod·jon

@farhodjon · Post #774 · 19.09.2025 г., 22:04

📣Hiring Alert Super Dispatch dizayn komandamizga ikki nafar Senior Product Designer qidirmoqdamiz. Murakkab muammolarni chuqur tahlil qilib, foydalanuvchilar bilan tadqiqotlar olib borib, oddiy va intuitiv dizayn yechimlar ishlab chiqa oladigan, odamlarga nisbatan kuchli empatiyaga ega dizayner qidiryapmiz. Dizaynerning har bir qarori odamlar ishini soddalashtirishi va biznes samaradorligini oshirishga xizmat qilishi kerak. Yaxshi komanda bilan ishlash uchun zo’r imkoniyat. Barcha talablar bilan havola orqali tanishish mumkin: 👉Senior Product Designer Repostlar uchun cheksiz minnatdorman! @nodizayn#superdispatch#hiring

Far·hod·jon

@farhodjon · Post #770 · 09.07.2025 г., 07:27

📣 Hiring alert (July 2025 Edition) Tandirdan yaqinda uzilgan yangi vakansiyalar: - Senior Frontend Engineer - Senior Backend Engineer (Python) Odamlarning hayotini va ishini o’zgartirish, professional o’sish, yaxshi komanda bilan ishlash imkoniyati. Tanishlarga yuborganlarga mendan cheksiz minnatdorlik! @farhodjon#superdispatch#hiring

Far·hod·jon

@farhodjon · Post #716 · 15.10.2024 г., 20:08

📣 Hiring alert (October 2024 edition) Super Dispatch’dagi joriy vakansiyalar haqidagi e’lonlarning kuzdagi ikkinchi soni keldi: - Senior QA Engineer🆕 - Senior Engineering Manager - Senior DevOps Engineer - Senior Backend Engineer (Java) @farhodjon#superdispatch#hiring

Far·hod·jon

@farhodjon · Post #712 · 17.09.2024 г., 15:12

📣 Hiring alert (September 2024 edition) Super Dispatch quyidagi vazifalarga mutaxassislarni taklif qiladi: - Senior Backend Engineer (Java)🆕 - Senior DevOps Engineer🆕 - Senior Engineering Manager @farhodjon#superdispatch#hiring

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