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 слични објави

Пребарај: #dual

当前筛选 #dual清除筛选

4️⃣4️⃣4️⃣3️⃣3️⃣3️⃣ 🇺🇿Vazirlar Mahkamasi huzuridagi Biznes va tadbirkorlik oliy maktabi Rossiyaning RANXiGS oliygohi bilan hamkorligidagi 3+1, "Ikki diplom" magistratura dasturiga hujjatlar qabul qilishni davom ettirmoqda. 📄Format: 2 yillik dastur — 3 semestr Toshkentda sirtqi shaklda va 1 semestr Moskvada. 📃 Nomzodlar https://e-tinglovchi.gsbe.uz/ qabul platformasi orqali hujjatlarni yuborishlari mumkin 🗓 Hujjatlarni topshirish muddati: 2024-yil 8-noyabrgacha. 📞 Maʼlumot uchun telefon: +99871 239-03-02 ________________________________________________ 🇺🇿 Высшая школа бизнеса и предпринимательства при Кабинете Министров Узбекистана совместно с РАНХиГС продолжают прием на уникальную магистерскую программу 3+1 «Два диплома». 🗂Формат:2 года обучения — 3 семестра заочнов Ташкенте и 1 семестр в Москве. 📃 Кандидаты могут подать заявку через платформу приема https://e-tinglovchi.gsbe.uz/ 🗓️Подача документов: до 8 ноября 2024 года. 📞 Телефон для справок: +998 71 239-03-02 #GraduateSchool#Study#Ranepa#Dual 🔝Web-site |🔝Facebook |🔝Instagram | 🔝Youtube

4️⃣4️⃣4️⃣3️⃣3️⃣3️⃣ 🇺🇿Vazirlar Mahkamasi huzuridagi Biznes va tadbirkorlik oliy maktabi Rossiyaning RANXiGS oliygohi bilan hamkorligidagi 3+1, "Ikki diplom" magistratura dasturiga hujjatlar qabul qilishni davom ettirmoqda. 📄Format: 2 yillik dastur — 3 semestr Toshkentda sirtqi shaklda va 1 semestr Moskvada. 🎓Diplomlar: 🔣Menejment (RANXiGS) 🔣 MBA - Korporativ boshqaruv va biznesni strategik rivojlantirish (Oliy maktab). 📃 Nomzodlar https://e-tinglovchi.gsbe.uz/ qabul platformasi orqali hujjatlarni yuborishlari mumkin 💼 Kontrakt narxi: yiliga 2000$. 🗓 Hujjatlarni topshirish muddati: 2024-yil 8-noyabrgacha. 📞 Maʼlumot uchun telefon: +99871 239-03-02 Ikki xalqaro diplomga ega bo‘ling va kareringizni davom ettiring! _________________________________________________ 🇺🇿 Высшая школа бизнеса и предпринимательства при Кабинете Министров Узбекистана совместно с РАНХиГС продолжают прием на уникальную магистерскую программу 3+1 «Два диплома». 🗂Формат:2 года обучения — 3 семестра заочнов Ташкенте и 1 семестр в Москве. 🎓Дипломы: 🔣Магистр менеджмента (РАНХиГС) 🔣 MBA — Корпоративное управление и стратегическое развитие бизнеса (Высшая школа). 📃 Кандидаты могут подать заявку через платформу приема https://e-tinglovchi.gsbe.uz/ 💼Стоимость: 2000$ в год. 🗓️Подача документов: до 8 ноября 2024 года. 📞 Телефон для справок: +998 71 239-03-02 🔐 Начни свою карьеру с двумя дипломами мирового уровня! #GraduateSchool#Study#Ranepa#Dual 🔝Web-site |🔝Facebook |🔝Instagram | 🔝Youtube

4️⃣4️⃣4️⃣4️⃣3️⃣3️⃣3️⃣ 🆕Высшая школа бизнеса и предпринимательства при Кабинете Министров продолжает приём документов на совместную магистерскую программу 3+1 «Два диплома» с РАНХиГС. 👨‍💻Два диплома по специальностьям: 1. «Магистр менеджмента» — диплом РАНХиГС. 2. «Управление бизнесом (MBA) — Корпоративное управление и стратегическое развитие бизнеса» — диплом Высшей школы 2-летняя магистратура - Заочная форма обучения - Стоимость контракта 2000$ в год - Два диплом 📕 Слушатели обучаются два года: три семестра в Высшей школе в заочнойформе и четвертый семестр в РАНХиГС, расположенном в центре Москвы, с предоставлением жилья. 🔔 Выпускники получат сразу два диплома магистра этихдвух учебных заведенийодновременно после успешного завершения программы обучения. 👨‍🦱 Кандидаты могут подать заявку через платформу приема https://e-tinglovchi.gsbe.uz/, приложив следующие документы: - документы о высшем образовании (с приложением) и нотариально заверенный перевод; - копия ID карты или паспорта (оригинал предоставляется во время экзамена); - сертификат, подтверждающий соответствующий уровень владения русским языком (если имеется). ⏳Срок приема документов: до 18: 00 8 ноября 2024 года. 📈 График работы приемной комиссии: понедельник-пятница, с 9:00 до 18:00. ☎️ Телефон для справок: +998 71 239-03-02 #GraduateSchool#Study#Ranepa#Dual 🔝Web-site |🔝Facebook |🔝Instagram | 🔝Youtube

4️⃣4️⃣4️⃣3️⃣3️⃣3️⃣ 🏙 Vazirlar Mahkamasi huzuridagi Biznes va tadbirkorlik oliy maktabi Rossiyaning RANXiGS oliygohi bilan hamkorligidagi 3+1, "Ikki diplom" magistratura dasturiga qabul davom etadi. 📄Ikki diplom mutaxassisliklari: 1.Menejment 2.MBA - Korporativ boshqaruv va biznesni strategik rivojlantirish 2 yillik Magistratura dasturi - Sirtqi ta'lim - Kantrakt to'lovi 1 yil uchun 2000$ - Ikki diplom 📚 Tinglovchilar sirtqi taʼlim shaklida umumiy ikki yil: Oliy maktabda uch semestr hamda to‘rtinchi semestrni Moskva shahri markazida joylashgan RANXiGS oliygohida, turar joy bilan taʼminlangan holda davom ettiradilar. 🔝 Bitiruvchilar o‘quv dasturini muvaffaqiyatli tamomlagandan so‘ng, bir vaqtning o‘zida ushbu ikki oliygoh magistrlik diplomlariga ega bo‘ladilar. 👩‍💻 Nomzodlar https://e-tinglovchi.gsbe.uz/ qabul platformasi orqali quyidagi hujjatlarini ilova qilgan holda murojaat qilishlari mumkin: - oliy maʼlumot to‘g‘risidagi hujjatlar (ilovasi bilan) hamda notarial tasdiqlangan tarjimasi; - ID karta yoki pasport nusxasi (imtihon vaqtida asl nusxasi taqdim etiladi); - rus tilini bilish darajasini tasdiqlovchi sertifikat (agar mavjud bo‘lsa). ⏱Qabul yakuni: 2024-yilning 8-noyabr soat 18:00 ga qadar. 👆Qabul komissiyasining ishlash jadvali: dushanba – juma kunlari, soat 9:00 dan 18:00 gacha. ℹ️ Maʼlumot uchun telefon: +99871 239-03-02 #GraduateSchool#Study#Ranepa#Dual 🔝Web-site |🔝Facebook |🔝Instagram | 🔝Youtube