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

Резултати

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

Пребарај: #bemediasmart

当前筛选 #bemediasmart清除筛选
mediasaboq.uz

@mediasaboq · Post #69 · 06.06.2023 г., 16:41

Xayolingizdagilarni sun'iy intellekt orqali amalga oshirishingiz mumkin Video qiziq boʻlishi mumkin doʻstlaringizga ulashing. #bemediasmart @mediasaboq — media muhitda xavfsiz va trendda yashang

mediasaboq.uz

@mediasaboq · Post #132 · 24.08.2023 г., 04:00

Onlayn so‘rovnomalarda qatnashib, hamma pullaringizdan ayrilishingiz mumkin Qanday qilib, deysizmi? 👉https://www.instagram.com/reel/CwS5_9uNcRv/ #ishon_ma #ergash_ma #tarqat_ma #bemediasmart Ogoh boʻl, media! @mediasaboq — media muhitda xavfsiz yashang

mediasaboq.uz

@mediasaboq · Post #131 · 22.08.2023 г., 16:56

Internetdahayotdagidan ko‘proq sizni kuzatishadi 2 yil ichida sizning internetdagi harakatlaringizni kuzatib, o‘ziga saqlab boruvchi veb-trekerlar soni 2 barobarga oshdi. Veb-trekerlar — siz veb-sahifada qilgan har bir harakatingiz haqida ma'lumot to‘plab boradigan internet saytlarining kodiga kiritilgan dasturlardir. Ular saytga kirishingiz bilanoq avtomatik tarzda faollashib, elektron pochta manzilingiz, login hisob ma'lumotlaringiz, akkauntingizga ulangan kartalar va ularning tafsilotlari, nimalarni ko‘p qidirishingiz, veb-saytlarda qancha vaqt o'tkazishingiz, qayerda o‘tirganingiz, qaysi qurilmadan foydalanayotganingiz, yuklab olgan dasturlaringiz va boshqa shu kabi ma'lumotlarni to‘plashi mumkin. Veb-trekerlardan asosan maqsadli reklama uchun foydalanilsa-da, ular g‘arazli niyatlarda ishlatilmasligiga isbot emas. MTC Red kiberxavfsizlik kompaniyasi 2021-yil ichida 21 mlrd veb-trekerni hisoblagan bo‘lsa, 2023-yilga kelib bu son 47 mlrd ga ko‘tarilgan. O‘rtacha har bir veb-sahifada 21 ta treker bo‘ladi va eng ko‘p yangilik saytlarida uchraydi. Internetdagi raqamli izingizni xavfsiz qilish uchun qanday saytlarga kirayotganingizgae'tiborli bo‘ling. Raqamli izingizni to‘laqonli xavfsiz qilish niyatingiz bo‘lsa, bu haqidagi batafsil videodarsimizni kuting. #ishon_ma #ergash_ma #tarqat_ma #bemediasmart Ogoh boʻl, media! @mediasaboq — media muhitda xavfsiz yashang

mediasaboq.uz

@mediasaboq · Post #130 · 21.08.2023 г., 15:25

Kompyuteringiz va telefoningizda yashirin virus borligini qayerdan bilish mumkin? Yechim siz o‘ylaganingizdan qiyinroq yoki osonroq bo‘lib chiqishi mumkin: instagram.com/reel/CwNhwH6tHns/?igshid=MzRlODBiNWFlZA== #ishon_ma #ergash_ma #tarqat_ma #bemediasmart Ogoh boʻl, media! 🔥 — bilmas edim 😎 — bilar edim, do‘stlarimga yuborib qo‘ydim @mediasaboq — media muhitda xavfsiz yashang

mediasaboq.uz

@mediasaboq · Post #128 · 20.08.2023 г., 13:27

Siz aniq uy manzilingizni bilmasdan internetga tarqatib yuborgansiz Misol uchun geotegging tufayli ko‘pchilik bilmasdan uy manzilini ulashib qo‘yadi. Hozirgi kamera va smartfonlar rasm yoki video olib bo‘lib, faylni saqlayotganida uning ichiga joylashuv ma’lumotlarini ham qo‘shib ketadi. Shu funksiya geotegging deyiladi. Aslida bu funksiya kerakli vaziyatlarda yoki kerakli odamlarga qayerda suratga olganingizni ko‘rsatishga yordam beradi. Lekin, masalan, uyda tushgan suratingizni internetga yuklaydigan bo‘lsangiz, internetdagi har qanday odam qiynalmasdan uy manzilingizni bilib olishi mumkin. Buning oldini olish uchun qurilmangiz sozlamalarida geoteggingni o‘chirib qo‘yishingiz yoki faylni internetga yuklashdan oldin joylashuv ma’lumotlarini olib tashlashingiz mumkin. Batafsil bu videoda: instagram.com/reel/CwK_mm9hXze/ #ishon_ma #ergash_ma #tarqat_ma #bemediasmart Ogoh boʻl, media! @mediasaboq — media muhitda xavfsiz yashang

mediasaboq.uz

@mediasaboq · Post #113 · 09.07.2023 г., 06:20

Hayratga solishi mumkin bo‘lgan 5 sun'iy intellekt (2-qism) Aynan qaysi sun’iy intellektdan foydalanish boʻyicha toʻliqroq video-yoʻriqnomalar tayyorlashimizni istasangiz, izohlarda qoldiring. Boshqa sun’iy intellektlar haqida bilmoqchi boʻlsangiz, izohlarda + belgisini qoldiring. #ishon_ma #ergash_ma #tarqat_ma #bemediasmart Ogoh boʻl, media! @mediasaboq — media muhitda xavfsiz va trendda yashang

mediasaboq.uz

@mediasaboq · Post #106 · 03.07.2023 г., 06:55

Ijtimoiy tarmoqlar qayerda ekanligingizni boshqa odamlarga ko‘rsatishini bilasizmi? Ijtimoiy tarmoqlar geolokatsiyangizni bilmasligi uchun nimalar qilish kerakligini bilmoqchi bo‘lsangiz, postimizni oxirigacha ko‘rib chiqing. #ishon_ma #ergash_ma #tarqat_ma #bemediasmart Ogoh boʻl, media! @mediasaboq — media muhitda xavfsiz yashang

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