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

Резултати

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

Пребарај: #pi

当前筛选 #pi清除筛选
APKPure_Official

@apkpurechannel · Post #2617 · 26.08.2025 г., 10:45

🎈Hot App This Week🎈 🚀💰#Pi Network Has A New Competitor: #InterLink!⛏️⚡ [🔗InterLink Network]📌Released on Jul 15, 2025 ✅Biometric face scan🤳 + liveness ✅Collections of mobile games 🎮🕹️ ❌Small user base. 10 billion coin supply limit [🔗Pi Network]📌Released on Mar 14, 2019 ✅Wide global user base ✅100 billion coin supply limit ❌Many unverified users Pick your desired bitcoin miner and start your crypto mining, earning, and trading TODAY! Add @APKFreeDownloader_Bot to get any apk you want.

CryptoBull_360™

@cryptobull_360 · Post #48754 · 13.03.2026 г., 18:21

✨ ✨#BANANAS31#PI#EVAA trades in VIP channel📈📈 We're here to help you recover your losses! Step by step, no rush, but I will turn your losses into profit 👌🏼⚡️ 😄 😄@CryptoBull_360_admin☑️

Google Facts™ [ ️@googlefactss🌎]

@googlefactss · Post #40812 · 17.03.2026 г., 11:51

Mathematicians found that many formulas used to calculate π are connected. About 43% of known π formulas come from one main form. Another 51% belong to related groups. This shows many π formulas are not separate. They share common structures in math. π is still an infinite number with no repeating digits. 📐🧠➗ [Read more] @googlefactss #math#pi#mathematics#science#facts

莉亚

@leya_starlight · Post #182 · 08.03.2025 г., 16:57

十年前就有人预言数字货币的重要性,数字货币分很多种,但真正能够广泛应用到世界实体经济发展的,还没出现。所以世界上会诞生出一种新型的数字货币。可供老百姓,个体,企业,国家去发展。GCV更代表未来的企业,跨境贸易支付,为国际结算货币账单做桥梁!#PiNetwork#pi#派友互关注

莉亚

@leya_starlight · Post #136 · 13.02.2025 г., 16:45

故事人人都有,我们都是生活中的俗人,在咖啡一样苦的日子里,希望能遇到一勺一人给你放糖的人。 #励志#互关必回#USDM#PI @YZ_USDM@Web3Brainiac@zjzs911

莉亚

@leya_starlight · Post #239 · 05.04.2025 г., 17:38

最难熬的日子都是自己过来的,熬过来以后才发现,也是那段日子才成就了自己。你要明白,只有走完必须走的路,才能过想过的生活,只有熬过无人问津的日子,才能拥抱你的诗和远方。 #PiNetwork#Web3#Pi#PiMillionaire

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