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

Резултати

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

Пребарај: #elegant

当前筛选 #elegant清除筛选
Numonov.co

@numonovdesign · Post #243 · 06.12.2023 г., 03:25

#logo#elegant ✅Brend nomi: ELEGANT ⚠️Vazifa: Logo & Identity ❇️Dizayner: No'monov Sherali ➡️Murojaat uchun: @richshax

KTM公益测速联盟

@guyingcs · Post #398 · 10.06.2024 г., 02:33

—————————————— 机场:#Elegant(机场主送测) 测试条件:#辽宁电信1G#辽宁联通1G 机场官网:🌐Elegant 机场频道:@krelegantnetwork 机场群组:@krelegantnet 长期八折优惠码:gay —————————————————— 机场简介:🇰🇷韩国人开的机场,拥有独特的韩国SKB家宽节点。拥有EMBY机场独立服,丰富的资源等你观看! —————————————— 主观评价:速度和解锁都挺不错的了,有韩国家宽,有emby,性价比挺高 —————————————— 关于我们: 群组:@ktmspeed 频道:@guyingcs 投稿联系:@ktmspeed_bot 合作联系:@shiyingzaiziya_bot —————————————— #提醒: 以上测速仅代表测速后端网络环境速度,仅供参考,具体速度与本地网络环境有关。任何机场都有跑路的风险,建议月付(不针对任何机场) ——————————————

KTM公益测速联盟

@guyingcs · Post #377 · 02.06.2024 г., 04:48

—————————————— 机场:#Elegant(机场主送测) 测试条件:#辽宁电信1G#辽宁联通1G 机场官网:🌐Elegant 机场频道:@krelegantnetwork 机场群组:@krelegantnet 长期八折优惠码:gay —————————————————— 机场简介:🇰🇷韩国人开的机场 —————————————— 主观评价:速度和解锁都不错,因为是韩国人开的,所以有韩国家宽,还有比较高的性价比 —————————————— 关于我们: 群组:@ktmspeed 频道:@guyingcs 投稿联系:@ktmspeed_bot 合作联系:@shiyingzaiziya_bot —————————————— #提醒: 以上测速仅代表测速后端网络环境速度,仅供参考,具体速度与本地网络环境有关。任何机场都有跑路的风险,建议月付(不针对任何机场) ——————————————

⭐️ Melo|26 years old|165cm|F cup #Elegant sister #Active licking #Full of milk 💋 A mature sister type, with a gentle and flirtatious voice~ 💋 The milk is soft and feels good, and the licking and blowing skills are first-class, making you feel so soft/// 💋 I like to make you relax, feel comfortable, and keep shouting don’t stop~ "Come on~ I'll take care of you tonight, okay? I'll make your whole body melt♡" 🍼TG:@aa11603 🍼Gleezy:aa1160 3 🇯🇵東京出張:@aa11605 🇯🇵大阪出張:@aa11604

KTM公益测速联盟

@guyingcs · Post #442 · 11.07.2024 г., 10:35

—————————————— 机场:#Elegant(机场主送测) 测试条件:#辽宁电信1G#珠海联通9G#中山电信 机场官网:🌐Elegant 机场频道:@krelegantnetwork 机场群组:@krelegantnet —————————————————— 机场简介:🇰🇷韩国人开的机场,拥有独特的韩国SKB家宽节点。拥有EMBY机场独立服,丰富的资源等你观看! —————————————— 主观评价:速度出乎意料,解锁不错,家宽+emby,非常可以 —————————————— 关于我们: 群组:@ktmspeed 频道:@guyingcs 投稿联系:@ktmspeed_bot 合作联系:@shiyingzaiziya_bot —————————————— #提醒: 以上测速仅代表测速后端网络环境速度,仅供参考,具体速度与本地网络环境有关。任何机场都有跑路的风险,建议月付(不针对任何机场) ——————————————

GitHub Trends

@githubtrending · Post #14866 · 25.06.2025 г., 17:30

#typescript#admin#admin_template#elegant#naive_ui#naive_ui_admin#pinia#typescript#unocss#vite6#vue#vue_admin#vue3 SoybeanAdmin is a modern, elegant, and powerful backend management template built with the latest technologies like Vue3, Vite6, TypeScript, Pinia, and UnoCSS. It offers a clear project structure, strict code standards, automated file routing, and built-in internationalization. It supports flexible permission routing, rich page components, and mobile-friendly layouts, making it ready to use without extra setup. This helps you quickly build or learn advanced admin systems with high code quality and customization options, saving time and improving development efficiency. It also provides command-line tools and mock data support for easier development and testing[1][4][5]. https://github.com/soybeanjs/soybean-admin