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

Резултати

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

Пребарај: #bee

当前筛选 #bee清除筛选
KTM公益测速联盟

@guyingcs · Post #258 · 14.04.2024 г., 00:38

—————————————— 机场:#Bee(机场主送测) 测试条件: #辽宁联通1G#辽宁移动1G#辽宁电信1G 机场官网: 🌐Bee 机场群组:@maxbeebee 机场频道:@maxbeebee —————————————————— 机场简介:营业三年老牌机场,稳定高速,解锁各种流媒体 GPT等,综合套餐低至6.6元 —————————————— 主观评价:相比上回,速度和解锁都优化了很多。 —————————————— 关于我们: 群组:@ktmspeed 频道:@guyingcs 投稿联系:@ktmspeed_bot 合作联系:@shiyingzaiziya_bot —————————————— #提醒: 以上测速仅代表测速后端网络环境速度,仅供参考,具体速度与本地网络环境有关。任何机场都有跑路的风险,建议月付(不针对任何机场) ——————————————

贴纸(少) 其它贴纸在这 分类 默认贴纸 Default sticker 🐱🐶 https://t.me/addstickers/cat_and_dog_by_favorite_stickers_bot 小坏坏 https://t.me/addstickers/huaihuaixbq 海豹 seal https://t.me/addstickers/haibao https://t.me/addstickers/lazyseal001 鸟🐦#bird 实用 鸟图 https://t.me/addstickers/usefulbird_by_favorite_stickers_bot Archive 鸽子 Pigeon https://t.me/addstickers/gugugupack #鹦鹉🦜 Parrot https://t.me/addstickers/prtyparrot https://t.me/addstickers/ParrotSticker (电)老鼠🐀/黄皮耗子/皮卡丘/pikachu mouse https://t.me/addstickers/DetePikachu https://t.me/addstickers/PikachuDetective https://t.me/addstickers/Pikachu_Box_by_favorite_stickers_bot 虎 🐯 tiger https://t.me/addstickers/Tiger_Going #蜜蜂#bee🐝 https://t.me/addstickers/beetouchfish https://t.me/addstickers/Beehits 鱼 🐟 fish 锦鲤 https://t.me/addstickers/Fishasyou 動物們(杂 animals https://t.me/addstickers/LolAnimals https://t.me/addstickers/LolAnimals2 龙 🐉 dragon https://t.me/addstickers/OB_nailong 乌龟 🐢 tortoise https://t.me/addstickers/candy_by_WuMingv2Bot 其它贴纸(除动物) 分类错误&添加请加群(在 描述 那 不经常上线,有事加群说&给管理直接改

KTM公益测速联盟

@guyingcs · Post #219 · 06.04.2024 г., 10:06

—————————————— 机场:#Bee(机场主送测) 测试条件: #珠海联通7G#武汉移动3G#上海电信2G#上海电信2G单线程 机场官网: 🌐Bee 机场群组:@maxbeebee 机场频道:@maxbeebee —————————————————— 机场简介:营业三年老牌机场,稳定高速,解锁各种流媒体 GPT等,综合套餐低至6.6元 —————————————— 主观评价:有免费的套餐和付费的套餐,不错的速度,以及较差的流媒体。 —————————————— 关于我们: 群组:@ktmspeed 频道:@guyingcs 投稿联系:@ktmspeed_bot 合作联系:@shiyingzaiziya_bot —————————————— #提醒: 以上测速仅代表测速后端网络环境速度,仅供参考,具体速度与本地网络环境有关。任何机场都有跑路的风险,建议月付(不针对任何机场) ——————————————

VIP_影视分享

@wangzhuanzhan · Post #33134 · 16.09.2024 г., 07:36

M-m蜜m蜂f总z动d员y- 蜜蜂总动员 Bee Movie (2007) 直达链接:https://pan.quark.cn/s/07d9268e0158 #蜜蜂总动员#Bee Movie #蜜蜂电影#蜂电影#一只小蜜蜂 链接:https://link3.cc/sf_com #电影#喜剧#美国#00年代

动物贴纸索引-暂定 比较杂的动物贴纸#animals#人物 陆地 1. 猫猫 🐱#cat 猫娘 # ?? 2. 狗狗 🐶#dog 3. #老鼠🐀#mouse 4. 兔子 🐰#rabbit#兔 5. #狐狸🦊#fox 6. #老虎🐯#tiger 7. #熊🐻#bear #熊猫#panda #浣熊#raccoon 8. #恐龙🦖#dinosaur 9. #鳄鱼🐊#crocodile 10. #鲨鱼🐬#shark 11. #猪🐷#pig https://t.me/addstickers/xiaofenzhu 有翅膀的 1.鸟 🐦#bird 2. 鸭子 🦆#duck#鸭 3. #企鹅🐧#penguin 4. 鸽子 5. #鹦鹉🦜 6.#蜜蜂#bee🐝 游戏 #game 人物 #人物 视频贴纸 #video 高清晰度贴纸 及 tgs格式动态贴纸 #tgs 暂未分 自定义emoji #emoji 注:标有 archive 的为内容重复或不全、低清的贴纸包,仅做收集保存,不建议使用